Adding c++ cource

Hacktoberfest notes:

due to volume of submissions, we may not be able to review PRs that do not pass tests and do not have informative titles.
please read our contributing guidelines
be sure to check the output of Travis-CI for linter errors
if this is your first open source contribution, make sure it's not your last!

What does this PR do?
Add Resource(s) | Remove Resource(s) | Add info | Improve Repo
For resources
Description
Why is this valuable (or not)?
How do we know it's really free?
For book lists, is it a book? For course lists, is it a course? etc.
Checklist:

[X] Not a duplicate
[X] Included author(s) if appropriate
[X] Lists are in alphabetical order
[X] Needed indications added (PDF, access notes, under construction)

Could you please add the line break under the Index heading back?
You can get more guidance on the formatting and conventions of this repository by checking out the contribution guide.
You can also click on the failed checks to get more information on any check failures. You'll be able to see exactly what was wrong and how to fix it!

@SethiPandi I saw
warning  Incorrect number of blank lines between heading and section  blank-lines-1-0-2  remark-lint
I will try to fix this warn.

Thanks, and welcome to free-programming-books!


[BUG] No module named 'setuptools.command.build' on cross python environment

setuptools version
65.2.0
Python version
3.9
OS
Ubuntu 20.04
Additional environment information
cross environment on docker messense/manylinux_2_24-cross:armv7l
Description
When running setup.py build_ext bdist_wheel I get exception: No module named 'setuptools.command.build'
When uninstalling setuptools it runs without that exception, however, failing at compiler.
On normal debian/ubuntu/macOS no problem with 65.2.0.
When listing setuptools/commands directory, in the problematic environments build.py is missing.
Hope you can help. It is an new problem, because it worked, before, however do not know if it ist setuptools related or maybe another module.
Kind regards
Reimund
Expected behavior
compiling cythonized code and building wheel
How to Reproduce

integrate setuptools via setup.py
run setup.py build_ext
getting above error

Output
running build_ext
Traceback (most recent call last):
  File "/opt/ioddcom/python/setup.py", line 78, in <module>
    setup(
  File "/opt/cross_env/py3.9/build/lib/python3.9/site-packages/setuptools/__init__.py", line 153, in setup
    return distutils.core.setup(**attrs)
  File "/opt/cross_env/py3.9/build/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/opt/cross_env/py3.9/build/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 967, in run_commands
    self.run_command(cmd)
  File "/opt/cross_env/py3.9/build/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 985, in run_command
    cmd_obj.ensure_finalized()
  File "/opt/cross_env/py3.9/build/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 107, in ensure_finalized
    self.finalize_options()
  File "/opt/cross_env/py3.9/build/lib/python3.9/site-packages/setuptools/command/build_ext.py", line 136, in finalize_options
    _build_ext.finalize_options(self)
  File "/opt/cross_env/py3.9/build/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 134, in finalize_options
    self.set_undefined_options('build',
  File "/opt/cross_env/py3.9/build/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 286, in set_undefined_options
    src_cmd_obj = self.distribution.get_command_obj(src_cmd)
  File "/opt/cross_env/py3.9/build/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 858, in get_command_obj
    klass = self.get_command_class(command)
  File "/opt/cross_env/py3.9/build/lib/python3.9/site-packages/setuptools/dist.py", line 887, in get_command_class
    self.cmdclass[command] = cmdclass = ep.load()
  File "/opt/cross_env/py3.9/build/lib/python3.9/site-packages/pkg_resources/__init__.py", line 2450, in load
    return self.resolve()
  File "/opt/cross_env/py3.9/build/lib/python3.9/site-packages/pkg_resources/__init__.py", line 2456, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
ModuleNotFoundError: No module named 'setuptools.command.build'

Hi @raymanP thank you very much for reporting this.
Could you please confirm the version of setuptools installed in these environments?
As you can see here, Setuptools 65.2.0 does contain the setuptools/command/build.py file. Therefore the 'setuptools.command.build' module should be available.
You should be able to see a /opt/cross_env/py3.9/build/lib/python3.9/site-packages/setuptools-65.2.0.dist-info directory in your machine if the installed version is 65.2.0.
You should also be able to see a setuptools/command/build.py file listed in the /opt/cross_env/py3.9/build/lib/python3.9/site-packages/setuptools-65.2.0.dist-info/setuptools-65.2.0.dist-info/RECORD file.
Can you confirm which installation method are you using to make setuptools 65.2.0 available in the /opt/cross_env/py3.9 environment?

I installed setuptools using: cross-python3.9 -m pip install -U setuptools
Is very strange: I get still this after installation (no change)
/opt/cross_env/py3.9/build/lib/python3.9/site-packages/setuptools-58.1.0.dist-info
however at cross-python3.9 setuptools.__version__ gives 65.2.0

Any chance there is a problem with the installation step?
If you are running cross-python3.9 -m pip install -U setuptools, this should give you /opt/cross_env/py3.9/build/lib/python3.9/site-packages/setuptools-65.2.0.dist-info/setuptools-65.2.0.dist-info, instead of a .../.../setuptools-58.1.0.dist-info, right?
Could you try to uninstall setuptools inside /opt/cross_env/py3.9/build and then reinstall the latest version?

however, is not used somehow.

I suppose that the directory /opt/cross_env/py3.9/build/lib/python3.9/site-packages/ should take priority over /usr/local/lib/python3.9/dist-packages... Isn't it be the expected behaviour?

Yes, I expect it same as you

This might be related to https://github.com/pypa/pip/issues/6264, but I am not 100% sure.

I now figured out how to get it right.
When installing setuptools using build-python3.9 instad of cross-python3.9 it works as expected.
Interesting is that some time before it worked without that change. Seems to be something cross_env or pip related I think.
However, now I can adapt my code to work again.
I think we can close this Issue.
Thank you very much @abravalheri

Thank you very much for reporting the solution @raymanP. It is indeed very strange.
Please let us know if you find out something that relates this problem to setuptools, so we can reopen this ticket.


Add ADS full push delay metric

This adds a histogram metric for ADS PushAll delay, which gives us an approximate convergence time for config changes.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: andraxylia
If they are not already assigned, you can assign the PR to them by writing /assign @andraxylia in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pilot/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@ostromart: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
8db2ccb759d161ec16e427754a0a0d281fcd1a05
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ostromart: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
e2c35c4cce017f0510d784a0870cda690a5213b3
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: mandarjog
If they are not already assigned, you can assign the PR to them by writing /assign @mandarjog in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pilot/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@ostromart: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-mixer-no_auth.sh
87cb0f79d9e2465ebfdd4bfb3374301b01ef4ead
link
/test e2e-mixer-no_auth

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


bug information request.

Hello all，
I'm sorry to bother. Is there a documentation that explains the bug report information using fast?
For example, "SD_Init:SetElementProportries:  Same starting and ending location in the element", I'm confused where the bug is.
Thanks a lot

I found the mistake. 2 joints are created at the same location.


Fv dockerize in ci

Added a new stage (dockerize) to the CI, that builds new docker Images
On master and tags for

frontend
server
noder_watecher

And uploads them to the Google Container Registry in the test-installations project.
Builds on master are tagged as :master-<short-commit-hash> and tagged branches
are tagged as: <tag-name>-<short-commit-hash>.

thank you @fevo1971!
If I'm understanding this correctly, with this setup all our Kubernetes deployments need to do is have the ImagePullPolicy set and they'll update automatically whenever those relevant tags are merged to master?

It's a good question. My 1st approach here is to have a deployment to staging (aka dashboards-cluster-1) whenever master is updated. If you tag a release
a deployment to productions (aka parity-prod) will be triggered. Docker images will be (docker)tagged either with :master or :x.z.y (for prod).
For staging a imagePullPolicy: Always will be set and for production to IfNotPresent.
Will that work for you guys?
Later maybe only docker build in case of changes for a particular directory/file an master.
Like this:
dockerize-frontend:
  stage: dockerize
  environment:
    name: parity-build
  <<: *dockerize_init
  script:
    - docker build -t "$DOCKER_IMAGE_FULL_NAME" front
    - docker push "$DOCKER_IMAGE_FULL_NAME"
  rules:
    - if: '$CI_COMMIT_REF_SLUG == "master"'
      changes:
      - front/*
      - .gitlab-ci.yml
    - if: $CI_COMMIT_TAG

Ok, that sounds good to me!


(SERVER-391) Provide better error message for borrow timeout

:+1: other than a few code reorganization suggestions.

:+1:


compatiable for NaN data value

Hi! I encountered a NaN bql result for an account. This lead to some issues in several dashboards. So I added a isNaN judgement in the code and fixed it.

I think the valueFn callback should return a valid number in the first place, instead of handling this in the buildAccountTree() function.
Can you provide a minimal reproducible example to trigger this issue? Or describe under which circumstances valueFn returns NaN?

Sure thing! For example:
`
1980-05-12 open Expenses:Test
2020-01-01 open Liabilities:Test                       USD
account: "test"
2020-01-02 * "credit card expense"
Liabilities:Test                             -9.99 USD
Expenses:Test                                 9.99 USD
2020-01-03 * "dispute credit card expense"
Liabilities:Test                             9.99 USD
Expenses:Test                                 -9.99 USD
`

Thanks for the example! I've fixed the valueFns in the example dashboard.


Discussion on tag format

Just a first draft to discuss the format (the learning curve is quite steep but I am super motivated 🚀).
The challenge is that Tag can be either a string or a Tag object.
Should we account for both or only the Tag object?
I try to do TDD for once writing the tests first but I feel I need to know the decision here and after that maybe a bit of guidance as when I look at the authors implementation it's not quite a two-liner 😏

I try to do TDD for once writing the tests first but I feel I need to know the decision here and after that maybe a bit of guidance as when I look at the authors implementation it's not quite a two-liner 😏

It's not quite my style to do TDD. Tests are always a pain especially with fixtures and mock implementations😅 So not much to offer. There's a Jest extension on vscode made by orta to facilitate TDD I believe, but I never turned it on.

The challenge is that Tag can be either a string or a Tag object.

I would prefer a map rather than a list.
---
# instead of this:
tags:
  - release
  - i18n
  - recap
---
# or this:
tags:
  - label: release
  - label: i18n
  - label: recap
---
# I'd like this:
release:
  label: release
  description: xxx
i18n:
  label: i18n
  description: xxx
recap:
  label: recap
  description: xxx
---

Just like authors, you can then reference them in docs/blog using keys:
---
tags: [release, i18n]
---

In this case, these strings are keys, not labels. If there isn't a matching key in the tags definition, Docusaurus would frown at you.

Thanks @Josh-Cena!
I see the map as very handy, I tried to avoid repeating more code but I see clearly the advantage. On it!
Regarding TDD; I don't mean real book TDD. I just first want to reproduce the tests from the authors file as it's a better starting point than randomly coding around.
I will close this PR as I made a mistake (I committed it from my work GH account and created the PR with my private one). Therefore I also mixed the CLAs. Will reopen.


Web UI mode to run load test not working for Python 3.6 version

Describe the bug

Getting below error in Termianl
File "c:\users\tiwaria\downloads\locust_3.6.0\venv\lib\site-packages\jinja2\parser.py", line 560, in parse_not
if self.stream.current.test("name:not"):
AttributeError: 'Token' object has no attribute 'test'
Looks like there is issue in parsing html.

Expected behavior

Web UI should get open to run performance test
Actual behavior

Getting Internal server error
Steps to reproduce

Run locust -f test.py  command in terminal.
Open browser and go to http://localhost:8089/

Environment

OS: Windows 10 Enterprise
Python version: Python 3.6.0
Locust version: 1.5.3
Locust command line that you ran: locust -f test.py
Locust file contents (anonymized if necessary):

import time
from locust import HttpUser, task, between

class QuickstartUser(HttpUser):
    wait_time = between(1, 2.5)
    @task
    def hello_world(self):
        self.client.get("/hello")
        self.client.get("/world")

    @task(3)
    def view_items(self):
        for item_id in range(10):
            self.client.get(f"/item?id={item_id}", name="/item")
            time.sleep(1)

    def on_start(self):
        self.client.post("/login", json={"username":"foo", "password":"bar"})

Could this be an issue with python 3.6.0?

Could this be an issue with python 3.6.0? As it is the first 3.6 version I'd almost assume it to have at least a few serious bugs.

Yes, it looks like the issue is with Python 3.6 version, the script is working fine for Python 3.7 and 3.8 and 3.9. But still could you please verify this from your side?

no time, sorry

It should work with later versions of 3.6 though (there are even automated tests for that)

Well, then you can mention in documentation that 3.6.0 is not supported.


tracking: support change stream subscription

Is your feature request related to a problem? Please describe.
We observe that users want to subscribe a table or a materialized view directly without kafka in the middle. It's kind of like making RisingWave a message queue (read-only). We need a comprehensive design propsoal for this feature.
Describe the solution you'd like
No response
Describe alternatives you've considered
No response
Additional context
No response

My major concern is that this might block/back-pressure the streaming task if the consumer is too slow. Any ideas on this?
One possible approach is via log-store. However, this will require a process of creating sink, that is, altering the streaming graph to add a sink with logstore before subscribe starts, and removes it after subscribe stops. This looks heavy.

Instead, I would like to add a CREATE SUBSCRIPTION command.

+1 for both this syntax and using log store for subscription (it is another form of sink I think).
I am a little confused about what users do with the results, I think what subscription does is print the chunks on the frontend.

This sounds to me like a RisingWave equivalent to PostgreSQL logical replication.
So some of the basics that you can do with a PG replication slot:

Create a slot
Read from the slot, or just peek from it
Monitor how far you're lagging
The slot is permanent and lives through reboots of both the client and the RisingWave cluster.
Drop a slot

Here it can be called a subscription, but fundamentally it seems like the same basic requirements and use cases?
Seems like a useful option if the user doesn't want Kafka as an intermediary, but also there is not yet a direct integration with CREATE SINK.... in that case a user can integrate on their end by directly ingesting data from RisingWave with a subscription.

our log-store was initially designed for checkpoint. I am not sure if we can use it for subscription as well.

Log store is an internally concept and it has the following properties:

It contains a in-memory part and persistent part. If downstream can keep up, not all changes will be continously persisted in the persistent part.
The visibility boundary of the persistent part of log store is epoch.
Log store is partitioned by vnode and provdes no guarantee on message ordering across vnodes.

To adopt log store for subscription, we can ignore 1 because it is not hard to persist all changes continously but we need to make sure 2 and 3 are acceptable.

This feature is released in v1.9.


Fix: https://github.com/RoadieHQ/roadie-backstage-plugins/issues/1306

This commit fixes the tick date format issue described here: https://github.com/RoadieHQ/roadie-backstage-plugins/issues/1306
:heavy_check_mark: Checklist

[ ] Added tests for new functionality and regression tests for bug fixes
[ ] Added changeset (run yarn changeset in the root)
[ ] Screenshots of before and after attached (for UI changes)
[ ] Added or updated documentation (if applicable)

Thank you 🙏


CLI login only keeps the most recently logged in URL

When using
pipeline login -u <custom url>

any previously stored url:token pair is overwritten. Only one pair can be stored at any given point in time

Fixed.


Interactive tutorial for third-party libraries?

Hi! I'm developing a library that generalizes ranges so they can be used in more contexts like for example async IO and metaprogramming. In the long term I plan to propose it for std.experimental, but first I need to introduce people to some new concepts and techniques, before I can convince them that it's a worthwhile addition.
So, obviously I was thinking about making a tutorial for my library, but then I noticed your project and I thought that it would be great if I could use it to present my library and to let others play with it.
What do you think about letting other people make tutorials about their libraries and to publish them on dlang-tour (of course, after your permission)? This would require some basic dub support (in order to specify external dependencies) and maybe some small reorganization (maybe adding a third-party drop-down, next to vibe-d).
Speaking of DUB, I'm willing to contribute a tutorial for it, but I haven't looked at your backend code, so I don't if it would be a large effort to support it in addition to rdmd.

First off, I really like the idea and what the direction this might take to provide a platform for trying D with various third party libraries.
There are just some technical difficulties I see which make this more of mid-term goal.
Currently a Docker container is used which is maintained by me. The container includes dmd and all needed dependencies and runs rdmd with source code file. Each transaction creates a new container which is thrown away when the source has been compiled and run. Currently each compilation/run step has a maximum runtime of 20 seconds and if the step doesn't finish within this period the container is killed. This is needed to prevent evil source to block the whole server.
Of course it would be possible to integrate dub into this container but I see a problem in giving users the permission to defined dependencies.  So a technical solution could be to fetch dependencies at startup and store them in some persistent manner so that the rdmd container can access and use them. This would also mean that it shouldn't possible to define arbitrary dependencies, but just a controlled set which are defined to be fetched before any compilation step. And it means that the dub.sdl shouldn't be editable to users directly but be provided by the third-party tutorial creator to make sure we don't fetch dependencies we don't want to have.
Again, I really like your idea to have dlang-tour more extensible. This is a great idea to make sure more libraries and tutorials are included without each library writer having to think about custom solutions. I am definitely willing to think about this and implement it according enhancements. I will soon create some concrete GitHub issues dealing to iteratively provide this functionality.
But my current focus is to get the first release of the dlang-tour out to public. So polishing and bugfixing will be me on my agenda before I start to do something on this topic.

Thanks for your detailed answer.
I understand what your saying about the technical difficulties - your current solution with rdmd is simple and robust. Adding DUB support will require considerable amount of work to implement securely. I am ok with postponing DUB after the official realease.
I briefly looked at your container and I have a simple suggestion - instead of manually downloading and installing DMD, you can use the Install script which is also used for popular services like Travic CI. The script is portable and doesn't require any special priveleges. It just unpacks the specified compiler version and the latest stable DUB version in ~/dlang/dub/ and e.g. ~/dlang/dmd-2.071.0-beta1/. Then a simple command is needed to make DMD and DUB available in $PATH:
$ source ~/dlang/dmd-2.071.0-beta1/activate

And if you want the latest DMD nightly:
$ ~/dlang/install.sh dmd-nightly
# Fetching DMD 2016-04-03..
$ ~/dlang/dmd-201-04-03/activate

Also, by default DUB puts all packages in ~/.dub/packages/, however if you don't want to store several gigabytes in the home directory, you can just make a symlink from this directory to e.g. another partition.
I would recommend having a single "repository" of DUB packages shared by all containers. DUB caches the fetch and build step, so the extra slowdown should only happen on first request to use a particular DUB package. There is also an offline option that tells DUB to only use what is already present. IMO, allowing users to manually modify dub.sdl is very important, because otherwise we won't the be able to teach them to effectively use DUB in their own projects. For example I would like to show them how to make some of their project dependencies truly optional. This wouldn't be possible without editing dub.sdl.
Maybe a good compromise is to allow users to manually edit the file, but restrict the available packages. E.g. run DUB only if dub.sdl contains only whitelisted dependecies.

Btw this should be a lot easier once dub gets the single-file support

Ping as dub now has a very nice way to provide dependencies as part of the file, e.g.
/+ dub.sdl:
name "check_phobos"
dependency "libdparse" version="~>0.7.0-alpha9"
+/

(e.g. have a look at this file)

Sooo... if I understand correctly, the following needs to be done in order to support single-file dub packages:
Backend:

[ ] [Optional] Migrate dlang-tour-rdmd to the install.sh script (curl i.dlang.io | bash)
[ ] Implement dlang-tour-dub docker container using the install script
[ ] [Optional] Refactor the installation into common docker task (Is it possible?)
[ ] Implement some sort of persistent (across container runs) ~/.dub folder so that we can manage to keep the build times < 20 sec (actually under 5 sec if we want good UX)out

Frontend:

[ ] Add built type selection

========

========

========

[ ] Teach the Run button to take built type selection into account - code

[ ] Add DUB IExecProvider. I would also like to have the option to select compiler vendor and version, but I'm not sure what's the best way to achieve this. I can think of to options:

Write a new IExecProvider for each compiler vendor/version combination. Maybe it would require less changes but would scale quite badly.
Extend the IExecProvider interface like so:

interface IExecProvider
{
    /* may be extended in the future */
    struct ExecResult
    {
        string output;
        int returnCode;
        @property bool success() { return returnCode == 0; }
        @property void success(bool ok) { returnCode = int(!ok); }
    }

    /* same as before */
    ExecResult compileAndExecute(string source);

    ExecResult compileAndExecuteWithSpecificTool(string source, string toolName);

    unittest
    {
        IExecProvider dubExec = getDubExecProvider();

        assert (dubExec.isToolSupported("dub-1.0.0+dmd-2.0.71") is true);

        auto execResult = dubExec.compileAndExecuteWithSpecificTool(
            q{
                 /+ dub.sdl:
                     name "hello_dub_world"
                 +/
                 int main()
                 {
                     return 42;
                 }
            },
            "dub-1.0.0+dmd-2.0.71"
        );

        assert (execResult.returnCode == 42);
    }

    bool isToolSupported(string toolName);

    unittest
    {
        import exec.docker : Docker;

        IExecProvider docker = new Docker(
            5 /* max time */,
            128 /* max output size */,
            10 /* max queue size */,
            10 /* MB max memory */
        );

        // tools not present in the whitelist are not supported
        assert (p.isToolSupported("asdasdad") is false);

        // At minimum RDMD with unspecified version *should* be supported.
        assert (p.isToolSupported("rdmd") is true);

        import exec.off : Off;
        auto off = new Off();

        // IExecProvider-s should not lie about their capabilities
        assert (off.isToolSupported("rdmd") is false);
    }
}

Content

[ ] Explain the built types combobox in somewhere around the welcome chapter
[ ] Write a chapter about DUB and explain how to use it on the dlang-tour site

@stonemaster @wilzbach what do you think? Is the above list of tasks complete? Do you think it should be done differently? Is the feature as whole a good idea? This seems like fun project and I'd like to implement it myself, but I first want to know if @stonemaster approves the overall development plan, so I can start working on concrete pull requests where we can discuss the details ;)

Sooo... if I understand correctly, the following needs to be done in order to support single-file dub packages:

First of all: thanks a lot for taking the initiative :+1:
I hope that my comment are at least a bit helpful.

[Optional] Migrate dlang-tour-rdmd to the install.sh script (curl i.dlang.io | bash)

I love the short url curl i.dlang.io | bash, but as a disclaimer I have to say the following three things:

in the short variant it doesn't use SSL (curl https://i.dlang.io | bash is supported though)
it uses unsupervised downloads from the official github repo to update itself (however I watch the tools repo, so I could easily disable this if someone sees it as potential security issue that the github DNS name will be hijacked - imho if Github is compromised we be screwed anyhow)
the script is currently hosted on my server (it's the most stable one, but I still think that it should on a server where multiple people can access it, e.g. one of D foundation's server)

Implement dlang-tour-dub docker container using the install script

See the comment below about switching to Linux sandboxes, that might save you/us quite some trouble ;-)

Implement some sort of persistent (across container runs) ~/.dub folder so that we can manage to keep the build times < 20 sec (actually under 5 sec if we want good UX).

Afaik the initial idea of @stonemaster was to cache the common packages ahead during deployment, but there are at least two problems

IIRC Dub always tries to use the latest version (and common packages are updated regularly)
We would have a hard job in keeping this list updated

-> so having a shared .dub cache is probably better, but

we might run into locking issues if two concurrent build happen
I am not even sure whether DUB supports multiple .cache directories

Maybe you can avoid this by updating the common cache after the build was run (and the result are sent to the client)?
As a warning: with single packages DUB sometimes requires one to build all packages ahead of time (https://github.com/dlang/dub/issues/893), the easiest workaround that I found was to run dub twice.

Add built type selection

I am not sure whether this is a good idea. Can't we use the new, single-file format for dub packages? Then people can also run examples on their machines and we don't need to show a button nor guess about which type to use:
#!/usr/bin/env dub
/+ dub.sdl:
name "fancy_ndslice_example"
dependency "mir" version="0.15.3"
+/

A simple way to distinguish between rdmd and dub would then be to grep for dub[.](sdl|json).
I do understand the interest in having dmd-nightly available, but as the D tour is specifically aimed at newbies to D, it would make the impression that D is still very unstable. Pinging @nazriel here as afaik he is working on a new version of DPaste (with dub support https://github.com/nazriel/dpaste-frontend/issues/5).

Add DUB IExecProvider. I would also like to have the option to select compiler vendor and version, but I'm not sure what's the best way to achieve this. I can think of to options:

As said before I am not sure whether it's good to display the available version in the UI, but it's definitely a good idea to support them via the API, s.t. we could have a full-page "IDE" page where a user can select the compiler version. However keep in mind that this brings another issue of keeping the dmd nightly compiler in sync with the docker images and afaik dmd is currently packaged into the docker image. @MartinNowak suggested to use SeLinux sandboxes for the individual runs, s.t. might be an easier way to keep the compilers up-to-date?

Write a new IExecProvider for each compiler vendor/version combination. Maybe it would require less changes but would scale quite badly.
Extend the IExecProvider interface like so:

Definitely the second, but why not instead of  "dub-1.0.0+dmd-2.0.71" pass the information a bit more digestible?
struct CompilerTool
{
    bool useDub; // or check whether dubVersion is empty
    string dubVersion = "1.0.0";
    string compiler = "dmd"; /
    string compilerVersion = "2.0.71"
}

Btw afaik there's no way yet to tell the installer which dub version it should use, but probably with the first official release this is coming soon & if it's using a string like "dub-1.0.0+dmd-2.0.71", then I would agree with passing the entire version string.

This seems like fun project and I'd like to implement it myself, but I first want to know if @stonemaster approves the overall development plan,

Just a wow - looking forward to those PRs from myside ;-)

Explain the built types combobox in somewhere around the welcome chapter

Side remark: My latest information is that we wanted to cut down the welcome chapter and move the four installation pages after the end of the basic tour, see
https://trello.com/c/g8ahgOdf/202-first-5-minutes

Write a chapter about DUB and explain how to use it on the dlang-tour site

:+1:

Thanks a lot for this thorough guide and the ideas you are writing on. I
really like the overall direction and appreciate it very much. :+1:
[Optional] Migrate dlang-tour-rdmd to the install.sh script (curl i.dlang.io
| bash)
That actually doesn't matter much. It would be nice to have but it is only
done once during building the rdmd docker image. It is actually a matter of
taste and I am totally fine with it. As to @wilzbach's concerns, this is
just done with every release of amew comtainer. On the downside, the
current version has thr current versione hardcoded which simplifies version
tracking,

Implement some sort of persistent (across container runs) ~/.dub folder
so that we >can manage to keep the build times < 20 sec (actually under 5
sec if we want good UX).

What is very important here is that we don't allow users specify arbitrary
dependencies. Otherwise the server's disk might run full because of bad
dependencies. So my idea would be fetch all dependencies during startup of
the tour with a special parameter to the dub container. Them when the users
wants its code executed we start dub with the --offline paramter to
disallow dependecy fetching.
Add built type selection
I am not sure whether this is a good idea. Can't we use the new,
single-file format for dub packages? Then people can also run examples on
their machines and we don't need to show a button nor guess about which
type to use:
#!/usr/bin/env dub/+ dub.sdl:name "fancy_ndslice_example"dependency
"mir" version="0.15.3"+/
I fully support @wilzbach's point. Maybe we should completely switch to
just a dub comtainer? Maybe if no dub.sdl comment is found a generic one is
generated by the tour itself. Otherwise we just all source code examples to
the new format. But that we can decid at a later moment.
Generally I think we should keep easier and introduce to much new other
"dimensions". So we should just dub and one releaed compiler version, I am
also against compiler version for now because it might create confusion for
new users. For different toolchains we have dpaste after all. And we would
need to check just a toolchain for sanity checks during CI.
This seems like fun project and I'd like to implement it myself, but I
first want to know if @stonemaster https://github.com/stonemaster
approves the overall development plan,
I really like the development plan and the overally direction is the right
one :+1:
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/stonemaster/dlang-tour/issues/27#issuecomment-239618476,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABZUwlebetu7bqbCLYlUaavFz1F8uPUhks5qfbh1gaJpZM4H-QsO
.

@wilzbach could comment on this:

See the comment below about switching to Linux sandboxes, that might save you/us quite some trouble ;-)

I didn't see a comment on that and I would like here your opinion here :-) @MartinNowak once questioned the use of Docker in the tour and I am still very sure that it is the right technology for us here:

It makes deployment very easy (see the DEPLOYMENT guide)
Like SELinux it guarantees to have sandboxes with memory constraints configurable
The setup is easily reproduible on every developer box that runs a more or less recent Linux
We can re-use Docker's infrastructure for deployment and distribution of the compile sandboxes
Looking at the Docker execution driver as well as the dlang-tour-rdmd shows how easy it is to get this model working. I wouldn't assume that SELinux provides the same level of low-maintenance..

I didn't see a comment on that and I would like here your opinion here :-) @MartinNowak once questioned the use of Docker in the tour and I am still very sure that it is the right technology for us here:

Oh I am quite happy with our current setup as we didn't experience any issue (yet), so I am definitely not going to complain. Moreover I agree with you that Docker is a good technology (my knowledge is too limited to say it's the right). Anyway my point was merely that in case @ZombineDev runs into problems with Docker (e.g. with providing nightlies or the dub cache), there are also other interesting. technologies. Sorry that the message was so unclear :/
OT: there's a fun video about docker:
https://www.youtube.com/watch?v=PivpCKEiQOQ

I fully support @wilzbach's point. Maybe we should completely switch to
just a dub comtainer? Maybe if no dub.sdl comment is found a generic one is
generated by the tour itself. Otherwise we just all source code examples to
the new format. But that we can decid at a later moment.

I just made an interesting discovery - if we use DUB instead of rdmd our builds might get faster :)
> python -m timeit -n 10 -s 'import os' 'os.system("rdmd --force foo.d")
5 loops, best of 3: 723 msec per loop
> python -m timeit -n 10 -s 'import os' 'os.system("dub run --single --force foo.d")'
10 loops, best of 3: 578 msec per loop

foo.d is the template meta programming gem,
Associative arrays
rdmd 5 loops, best of 3: 637 msec per loop
dub: 5 loops, best of 3: 584 msec per loop

Loops
rdmd: 5 loops, best of 3: 488 msec per loop
dub: 5 loops, best of 3: 373 msec per loop

The downside is that when a build error occurs (e.g. the range example), DUB is a bit slower)
rdmd: 5 loops, best of 3: 170 msec per loop
dub: 5 loops, best of 3: 212 msec per loop

So in summary:  using a DUB as build container makes our builds more flexible and even faster :tada:

Thanks for assigning this to me. I want to push this forward, though realistically I'll be able to make progress on this front after 10-15 Sep, because I'll be quite busy before that. I hope you don't mind the delay.

Thanks for assigning this to me.

Sorry I just went through the issues and saw this.

I'll be able to make progress on this front after 10-15 Sep, because I'll be quite busy before that. I hope you don't mind the delay.

No worries - at some point I also have to go back to my other life at university.

I want to push this forward, though realistically I'll be able to make progress on this front after 10-15 Sep, because I'll be quite busy before that. I hope you don't mind the delay.

@ZombineDev I might have some time in the next weeks to help you on this. What is your current status? Anything concrete that you are blocked on or just the "usual, unfortunate lack of time"?

FYI with https://github.com/dlang-tour/core-exec/pull/5, we have a basic DUB support working.
It's currently based on a hard-coded list of libraries that are fetched into the Docker image and prebuilt, but it's working very nicely (so far) and should be a good start.
Example: https://is.gd/QiFKTf


Sigma fun fixes

Here are the changes we discussed last week. Let me know if it all makes sense or if anything else is missing.
Please note this PR targets the sigma_fun branch as opposed to master.

Thanks! LGTM. Is the proptest fix coming in another PR?

Good point! Forgot about that. Sure thing :D


build method rebuilds uncecessarily

class RebuildTest extends ConsumerWidget {
  const RebuildTest({Key? key}) : super(key: key);
  static const route = '/architect_personal_details';

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    print('building...');

    return Column(
      children: [
        const Text('Rebuild'),
        ref.watch(educationListProvider).when(
              data: (data) => Text('Test'),
              error: (e, s) => const SizedBox.shrink(),
              loading: () => const Center(
                child: CircularProgressIndicator(),
              ),
            )
      ],
    );
  }
}

output:
I/flutter ( 4740): building...
I/flutter ( 4740): building...
Here the build method triggered 2 times.

When the page is loaded for the first time. (expected).
When the data is loaded in the FutureProvider. (not expected).
Only the widget Text('Test')  is supposed to rebuild.
NB: I'm using riverpod generators. Same happening for ConsumerStatefulWidget too.

You should do like this
class RebuildTest extends ConsumerWidget {
  const RebuildTest({Key? key}) : super(key: key);
  static const route = '/architect_personal_details';

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    print('building...');

    return Column(
      children: [
        const Text('Rebuild'),
        Consumer( // Wrap with Consumer
          builder: (context, ref, child) {
            print('Consumer building...');

            return ref.watch(educationListProvider).when(
                  data: (data) => Text('Test'),
                  error: (e, s) => const SizedBox.shrink(),
                  loading: () => const Center(
                    child: CircularProgressIndicator(),
                  ),
                );
          },
        )
      ],
    );
  }
}

See Consumer.

@moxiaov587 @rrousselGit
So we need to wrap every .when with Consumer widget to limit the rebuild to a particular widget?
Feels like more work. Is it possible to add the functionality in .when itself, like BlocCunsumer in flutter_bloc?

@bibinmpanicker When you use ref.watch you are registering the ref owner to rebuild when your provider changes, so wrapping it in a consumer gives you another ref that will not make reload the whole widget.
Alternatively, you can create another ConsumerWidget and use  ref.watch there to achieve the same effect.
Regarding BlocConsumer, you can implement something similar for Riverpod but it has its limitations:
class RiverpodConsumer<T> extends ConsumerWidget {
  const RiverpodConsumer({
    super.key,
    required this.provider,
    required this.builder,
  });

  final ProviderBase<T> provider;
  final Widget Function(BuildContext context, T state) builder;

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    return builder(context, ref.watch(provider));
  }
}

final myProvider = FutureProvider((ref) async => 'a');
final c = RiverpodConsumer(
  provider: myProvider,
  builder: (context, state) => state.when(
    data: (data) => const Text('Test'),
    error: (e, s) => const SizedBox.shrink(),
    loading: () => const Center(child: CircularProgressIndicator()),
  ),
);

The recommendation is to split your widgets into multiple smaller ones.
So instead of using Consumer, you would do:
class RebuildTest extends ConsumerWidget {
  const RebuildTest({Key? key}) : super(key: key);
  static const route = '/architect_personal_details';

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    print('building...');

    return Column(
      children: [
        const Text('Rebuild'),
        const EducationListText(),
      ],
    );
  }
}

class EducationListText extends ConsumerWidget {
  const EducationListText({super.key});

  @override
  Widget build(context, ref) {
     print('Consumer building...');
     return ref.watch(educationListProvider).when(
       data: (data) => Text('Test'),
       error: (e, s) => const SizedBox.shrink(),
       loading: () => const Center(
       child: CircularProgressIndicator(),
     ),
   );
  }
}

This achieves the same thing as using Consumer, but is in fact more efficient. If RebuitlTest rebuilds, EducationListText will not (since it is const) – yet it will correctly listen to changes on the provider.
It's also more readable & generally more maintainable, as your widgets do fewer things.


Question solder

Updated launcher, put Solder latest version.
When the launcher put the link to Solder launcher writes an error to JSON.
My solder: http://platform.grimcube.ru/api/modpack/vanilla
Technic: http://api.technicpack.net/modpack/vanilla
What did I do wrong that such a huge difference?

You cant name your solder pack the same name as an official pack? I don't think you understand really how solder works. Read the wiki to learn how to link your solder to the platform.


Fix debugger type for sp_whoIsActive

Fixes issues described in https://github.com/microsoft/azuredatastudio/issues/2768
Two additional notes :

The server-reports extension was moved so no longer has the launch.json. Just fixing it in another place it was wrong
Currently the debug extension isn't working. I'm working on a fix for that being tracked by https://github.com/microsoft/azuredatastudio/issues/16760

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.002%) to 42.04%

Totals

Change from base Build<PHONE_NUMBER>:
-0.002%

Covered Lines:
26394

Relevant Lines:
56916

💛  - Coveralls


Running node ace swagger:generate fails without app env variables

Prerequisites
Running node ace swagger:generate fails without env variables. The case where we build it in the ci/cd, it's not good to put the app envs there. Furthermore, the node ace build itself can be run successfully without the env variables.

Package version
1.4.1
Node.js and npm version
❯ node -v
v16.19.1
❯ npm -v
8.19.3
Sample Code (to reproduce the issue)

BONUS (a sample repo to reproduce the issue)

CLI is built on top of adonis ace, this is not package issue. You can disable validation in env.ts file


a sample of data in hdf5 format

Hi,
I'm trying to train the models from scratch since I'd like to use them on a different language. It seems that one needs a dataset in hdf5 format instead of SQL to do that. Can you please release a sample of data in hdf5 format?
Thanks

Hello azagsam,
Sorry about that, I've pushed an update, now all scripts should work with the SQLDataset format. I've also added a Jupyter Notebook that should help if you want to create a dataset in that format.
Another option is to modify the collate_fn of any script to change the data loading process.
Hope that helps,
Philippe


Move examples to separate toml

Reasoning: cleaner separation between examples and actual crate. Removes unnecessary feature inside the examples and shows how to import the api-client inside the examples/Cargo.toml

Clean up of .tomls from unused dependencies

I think that's not necessary for now. Closing.

Ah well, it is somewhat of a clean up, so maybe worth .

Closing in favour of #369


IGN France: change to move tests about match_type in the reverse geocode case

The case match_type in 'Street enhanced' where no building number is not working the expected way so keeping a special use case for this purpose is not useful.
We added a new test and made a change in test/geocoders/util.py class to also test address key and not only raw, longitude and latitude.
To see the existing issue that justified this change issue, only apply change in util.py and in test/geocoders/ignfrance.py.
You will that geocoding Camp des Landes, 41200 VILLEFRANCHE-SUR-CHER will send back None le camp des landes, 41200 Villefranche-sur-Cher whereas it should be le camp des landes, 41200 Villefranche-sur-Cher
It comes from the facts:

that when we convert for XML we set keys to None when not available
the condition in ignfrance.py _parse_place function was supposing that building key was never empty (to None) with the case match_type 'Street enhanced'

@ThomasG77, thanks, merged in 3bb5dd85c1b2fbef4937055acda4fdc86742c7d5.

Released in 1.7.1.


Multiupload support

There is ability to pass several files though one field. Nginx and django support this feature. This PR brings this into django-transfer.

@meteozond Thanks for the contribution


Autorest Regen Preview to 3.0.0-alpha.20230912.6 by Rodge Fu from refs/pull/3677/merge

Triggered from https://github.com/Azure/autorest.csharp/pull/3677

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.ResourceManager.ContainerRegistry


Formatting separates start from strand annotation

Description:
This
 future<int> f1 = @strand {thread: "any"} start multiply(1, 2);

is formatted as
    future<int> f1 = @strand { thread: "any" }
    start multiply(1, 2);

Note the start at the next line. I think this need not move to a new line. This is because the annotation is for the start call.
Affected Product Version:
Slp5
OS, DB, other environment details and versions:
Steps to reproduce:
Format the above code using VSCode plugin

@sanjana Can you check whether this issue is still there in the latest preview-version?

@SupunS yes, this issue is still present in the latest preview-version as well as in the current master.
I'll send a fix for this as well.


Create guessthenumber.cpp

:warning: This is a Pull Request Template :warning:

Checkout all the things you've done by placing an x within the square braces below.

Proposed Changes

[] I've read the CODE OF CONDUCT and abide to it.
[] I've read the CONTRIBUTING.md
[] I've forked the repository.
[] I've created a branch and made my changes in it.
[] I understand opening a PULL REQUEST doesn't mean it will be merged for sure.

[x] I've read the CODE OF CONDUCT and abide to it.
[x] I've read the CONTRIBUTING.md
[x] I've forked the repository.
[x] I've created a branch and made my changes in it.
[x] I understand opening a PULL REQUEST doesn't mean it will be merged for sure.

Please re-submit when you're ready 👍


Fix for 'data' key in logger's extra

Fixes #336

Can we preserve the current behavior in this SDK? I feel like Raven's old behavior added an unnecessary layer of complexity (accessing data first), but maybe I am missing something.
I would've expected that you just remove the data key from the const.

Can we preserve the current behavior in this SDK? I feel like Raven's old behavior added an unnecessary layer of complexity (accessing data first), but maybe I am missing something.
I would've expected that you just remove the data key from the const.

I thought of just removing data from COMMON_RECORD_ATTRS before, but keeping Raven's old behaviour in mind, this way we'd unwrap data dict before showing it in sentry's Additional Data section.
If we still wanna preserve the current behaviour, I guess removing data from constant also resolves the issue.

So what I want to understand is why you prefer Raven's behavior over sentry-sdk's behavior. I am open to either one, but we have to keep in mind that changing this behavior is a breaking change within sentry-sdk's version timeline.

As I migrated from raven to new sentry-sdk, my projects stopped logging info as I was following old Raven's way to log additional data. This change is what I did to kinda cope with it.
I guess Raven did unwrapping of data to make it easier to integrate logger's components-
Since Raven provided two main extended functionalities to logging - 'extra' = {data: {...}, stack: True}, so it was convenient to maintain a data dict (that also performed unwrapping similar to 'extra') and to explicitly mention stack True when required, rather than adding stack key along with other data in a dict and pass it to 'extra' directly.
But as you mentioned earlier, exc_info is used for callstack in sentry-sdk, I think unwrapping data doesn't serve any purpose now. I'm inclined towards removing data from constant as well.

Good point. I agree and would prefer to keep sentry-sdk's current behavior wrt data unwrapping.

Thanks!


fix #106 Gearpump Redis Integration

Redis is a hight performance in memory storage , and have widely used in a lot of project .
It's should support redis as DataSource and DataSink .

@darionyaphet we probably need some unit tests. Good job on splitting example and actual definitions into example and external. It doesn't look like the build failures are related
[info] StreamAppSpec:
[info] - should be able to generate multiple new streams
[info] - should plan the dsl to Processsor(TaskDescription) DAG *** FAILED ***
[info]   java.io.NotSerializableException: scala.collection.LinearSeqLike$$anon$1
[info]   at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
[info]   at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
[info]   at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
[info]   at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
[info]   at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
[info]   at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
[info]   at akka.serialization.JavaSerializer$$anonfun$toBinary$1.apply$mcV$sp(Serializer.scala:235)
[info]   at akka.serialization.JavaSerializer$$anonfun$toBinary$1.apply(Serializer.scala:235)
[info]   at akka.serialization.JavaSerializer$$anonfun$toBinary$1.apply(Serializer.scala:235)
[info]   at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
[info]   ...
[info] - should produce 3 messages *** FAILED ***
[info]   java.io.NotSerializableException: scala.collection.LinearSeqLike$$anon$1
[info]   at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
[info]   at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
[info]   at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
[info]   at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
[info]   at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
[info]   at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
[info]   at akka.serialization.JavaSerializer$$anonfun$toBinary$1.apply$mcV$sp(Serializer.scala:235)
[info]   at akka.serialization.JavaSerializer$$anonfun$toBinary$1.apply(Serializer.scala:235)
[info]   at akka.serialization.JavaSerializer$$anonfun$toBinary$1.apply(Serializer.scala:235)
[info]   at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
[info]   ...

@darionyaphet  thanks for your contributions. please add license headers

@manuzhang   I have add license headers .
@kkasravi I will add some unit tests .
thank you :)

@darionyaphet we have changed Gearpump's package name, please rebase our latest code. Sorry for the inconvenient.

@darionyaphet also please modify your commit comment to fix GEARPUMP-106, Redis integration which would make our pr merge script happier.

Hi @manuzhang what is the commit format ?
I found some rules on Contribution Guideline
For all commit log messages, they must contain issue id. Like this: "fix #issueId, comments".

Hi  @huafengw sure I will rename packages from io.gearpump to org.apache.gearpump :D

@darionyaphet yes, as we use jira now issue id should be GEARPUMP-XXX. You may our recent commits for examples

@darionyaphet Could you add this module to the experiments ? That will be low risk before the module is mature. Plus, the experiments doesn't require UT coverage. Also, please add a README for how to use this module.

Though the new package name is right, you still need to rebase latest master branch to correct the import.
Also, please add some comment to explain the interfaces and classes.

@darionyaphet if you are time constrained please let us know and we can make the changes noted above. We would like to get this into the next release if possible (we're targeting in about 2 weeks).
thanks
Kam

Sorry to reply it with so long .
@manuzhang @huafengw   redis examples class name have rename to RedisSourceSinkExample and RedisSourceStorageExample , also add into BuildExample.scala . It seems better ?
external-redis have move  into experiments I will add unit test later :)
@kkasravi I will fix and add some comment at weekend :)

@darionyaphet What's the difference between RedisStorage and RedisSink here since they both extend DataSink ?

I think I see the idea behind RedisSink and RedisStorage.
Redis is advertised as "data structure store". It supports structures (like strings, lists, sets, hashes, etc.) and operation on them (add element to a set, remove element; add element at the beginning of a list, at the end; remove element from head/tail of the list, etc.).
It also pub/sub server (http://redis.io/topics/pubsub)
RedisSource and RedisSink work on "classic" message stream utilizing Redis' pub/sub mechanizm. The source subscribes to a channel. The sink publishes to a channel.
RedisStorage reads a message and let you make a Redis command (add to list, set, etc.). The subset of commands is defined in RedisMessage. (I would think about changing the name, though. For example RedisCommandSink or similar).
@darionyaphet  what do you think?

[Current coverage][cc-pull] is 64.10%
[][cc-pull]

No coverage report found for master at 25d1fce.

Powered by Codecov. Last updated by [25d1fce...c3686fd][cc-compare]
[cc-base-branch]: https://codecov.io/gh/apache/incubator-gearpump/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/apache/incubator-gearpump/compare/25d1fce6b98872d6142d216166a5d204d01f9239...c3686fde6af6d6c1d6136d7b312d625ab602ea09
[cc-pull]: https://codecov.io/gh/apache/incubator-gearpump/pull/11?src=pr

@manuzhang actually storm-redis act as a ORM framework and put the message into a redis instance . So it don't have a full command support . I think we can support more command such as delete , ttl and exists .

We are developing under 'experiments' here. I'd be happy to have something decent here. Maybe not full-blown, but functional.
Can we sum up what we still need to do with this PR?
Putting the examples in experiments folder?
Tests?
Updating names?
My point is: Let us release first version of the redis connector and improve it in next releases.

@karol-brejna-i @darionyaphet  I understand the difference between RedisSink and RedisStorage now but I don't think RedisStorage should extend the DataSink interface which is intended for write. Probably we need a new interface for such usage as RedisStorage. For now, we can add RedisStorage without extending any interface. I totally agree we have a functional version first and improve later as long as all are put in the experiments folder with reasonable naming. Tests are not hard requirement for a experiments module.

@karol-brejna-i  It's seems have a lot things to do .

Support more command such as : time to live , exist and delete  .
Support Redis Cluster and Redis Sharding .
Add some Test Case

@manuzhang
HBaseSink seems have the same question .
Sink and Source are support to the data streaming , Storage is meaning to put data into a place .

@darionyaphet

Support more command such as : time to live , exist and delete .
This is the reason I tend to agree @manuzhang. Let's have the "basic" source/sink. Let's make RedisStorage a helper class (not a DataSink). This will let us release a functional version of the connector and improve later.

Support Redis Cluster and Redis Sharding .
Looks like Jedis has cluster support already (https://github.com/xetorthio/jedis#jedis-cluster). Sharding, too. So it would be a matter of using the features. Again, I would try to incorporate the features in next releases.

Add some Test Case
As Manu wrote, test are not the blocker for an experiment module.

My message is: let's release first version of Redis Connector soon and give ourselves time to improve ;-)

@kkasravi @manuzhang  RedisStorage maybe need more discuss so I have remove it .
After we have a discuss , I will repush it :)

@darionyaphet this is partially done in #93. Please rebase or, close and fire a new PR for follow-ups.


✨ Git branches selector quality of life improvements

Description
I think two very important features are missing from the existing Git branches selector/dropdown in order to be usable on large repositories.

A search/filter bar
Nested branches, for example feat/my-branch and feat/my-other-branch should both live under a common feat parent folder

Alternatives Considered
No response
Additional Context
No response
Screenshots
No response

I am wondering now that nested branches is done, what might the user experience look like with nested branches and also a search filter?


Fix multilines for OCaml block in .mli file

This small PR fixes the fact that, in OCaml blocks, in .mli files, the indentation was erased to a "only 2 space relative to the opening bracket" indentation.
For instance,
(**
{[
  match None with
  | None -> ()
  | Some a -> match a with
    | None -> ()
    | Some _ -> ()
]}
*)

was turned into
(**
{[
  match None with
  | None -> ()
  | Some a -> match a with
  | None -> ()
  | Some _ -> ()
]}
*)

which is not ideal.
The first commit adds a test, showing the wrong behaviour,. The second commit is the patch and updates the test.
The new behaviour is the first line is indented two spaces after the opening bracket, and for other lines the indentation relative to the first one is kept, as long as they are at least as indented as the first one. In the previous example, the exact indententation would be kept.
In the test, I also added that multilines in .mli files for toplevel block does not work!

Oh, as I am seeing the CI runs, can you add a changelog entry?

Thanks @panglesd for your help, I'll try to bundle a few of these fixes that have PRs and make a release soon.

https://github.com/realworldocaml/mdx/pull/397#discussion_r987613121


Normalize Luca-AlexanderThomas.AutoHome-Autostart 1.0.0

null
Microsoft Reviewers: Open in CodeFlow

@wingetbot run

SIB.CA0:  The Package is expired! This package is created with Silent Install Builder evaluation version (www.apreltech.com). Please purchase the license.
The Package is expired! This package is created with Silent Install Builder evaluation version (www.apreltech.com). Please purchase the license.
SIB.CA0:  Error 0x80004004: Action failed


Read annotated data with Doccano in Spacy

Hi,
Please how can i read my annotated data with another tool named Doccano.
1) Here is my annotated data's form:

"annotation": [
[
79,
99,
"Nom complet"
],

2) The code that i want to change to read my annotated data:

for line in lines:
    data = json.loads(line)
    text = data['content']
    entities = []
    for annotation in data['annotation']:
        #only a single point in text annotation.
        point = annotation['points'][0]
        labels = annotation['label']
        # handle both list of labels or a single label.
        if not isinstance(labels, list):
            labels = [labels]

        for label in labels:
            #dataturks indices are both inclusive [start, end] but spacy is not [start, end)
            entities.append((point['start'], point['end'] + 1 ,label))

You should read this Export File Format

BrambleXu can you help me please ?


Document CF cell_method attributes in output files

Reported by Steven C Hankin on 23 Oct 2007 16:05 UTC
When regridding is done by @AVE or @MIN or @MAX on a variable it is presumably
reasonable to set the CF cell_method to reflect that.
http://cf-pcmdi.llnl.gov/documents/cf-conventions/1.0/ch07s03.html
The approach to this is likely to be to create attributes on the regridded
Ferret variable, itself.  Unanswered questions about whether these attributes
ought to be inherited when other variables are derived from a variable with such
an attribute.
Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/1544

Modified by ansley.b.manke on 5 Jan 2011 22:10 UTC


[CT-1107] Log output for materialization incremental incorrectly reports bytes processed

Describe the bug
When you run an incremental model, two bigquery jobs are created:

create_table_as_select job
merge job

The log output only shows bytes processed / row processed for the merge job, but it should show both compiled.
Steps To Reproduce

Create an incremental model.
Set the config of the incremental model to the above

{{
    config(
        materialized='incremental',
        on_schema_change='append_new_columns',
        partition_by = {
          "field": "p_date",
          "data_type": "date",
          "granularity": "day"
        },
    )
}}

Inside the incremental model, perform a full table scan of the upstream table.
Querying the information schema, to see the jobs generated.

select
total_slot_ms / TIMESTAMP_DIFF(end_time, start_time, MILLISECOND) as avg_slot_usage
, *
FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
where creation_time > timestamp_sub(current_timestamp(), interval 1 hour)
and statement_type != "SCRIPT"
order by creation_time desc

Expected behavior
If an incremental model requires two jobs to complete it, the dbt log output should show both jobs or combine the bytes processed metrics from both.
Screenshots and log output
I ran the incremental model, the incremental model requires two jobs:

create_table_as_select job -- processed 600 GB
merge job -- processed 0 bytes

The output hides metrics for job 1 which was an expensive mistake in this case!
06:43:32  1 of 1 START incremental model reporting_sl.mobile_metrics_daily ............... [RUN]
06:43:41  1 of 1 OK created incremental model reporting_sl.mobile_metrics_daily .......... [MERGE (0.0 rows, 0 processed) in 8.91s]

System information
The output of dbt --version:
Core:
  - installed: 1.1.2
  - latest:    1.2.1 - Update available!

  Your version of dbt-core is out of date!
  You can find instructions for upgrading here:
  https://docs.getdbt.com/docs/installation

Plugins:
  - bigquery: 1.1.0 - Update available!

The operating system you're using:
linux
The output of python --version:
Python 3.9.13
Additional context
Add any other context about the problem here.

Hey @benney-au-le, could you please share the dbt command you're using to trigger both a CREATE TABLE and a MERGE on the same run? I can't reproduce the behavior yet.
I'm running the same version as you, my incremental view is defined as:
{{
    config(
        materialized='incremental',
        on_schema_change='append_new_columns'
    )
}}

select
    *
from {{ref('newish_records')}}

{% if is_incremental() %}

  -- this filter will only be applied on an incremental run
  where updated_at > (select max(updated_at) from {{ this }})

{% endif %}

And I get:

CREATE on dbt run --full_refresh --select incremental_records
MERGE on dbt run  --select incremental_records

I'm wondering what I'm missing. Thanks!

Scrapping my previous comment, got it, looking into it ;)

@jtcohen6 sorry to pull you in, but I'm wondering if this isn't a core behavior rather than one specific to the BQ adapter? The fact that an incremental refresh only log metrics from the final merge and not the initial create temporary table.

@Fleid Correct! This is a known fact in dbt-core, that only the "main" statement in a multi-step materialization is used to report the "result" from that materialization (e.g. displayed on stdout, and in run_results.json).
We do capture bytes_processed, and other query-specific metadata, for every query that dbt executes. It would be possible to include this information in our structured logs. This issue provides an overview of the proposal: https://github.com/dbt-labs/dbt-core/issues/5325
As a longer-term initiative, we are looking to make our logs the source of truth for all dbt metadata. For now, we should chalk this issue up as a known limitation of dbt-core, and one that's unlikely to change without a significant overhaul of our materializations.

@benney-au-le I'm closing this issue following the comment above - this is a limitation of dbt-core, that should be addressed but not in the short term. Please re-open if you think there's more to it.


[README] Need to fix badges

Description

README.md is the first file one should read when starting a new project. For attractive look, we added some badges also.
But, there's a Slack badge failing, need to fix that. Plus, Align all the badges to center.
Screenshot
Current Behavior

Desired Behavior

Environment:

OS: any [e.g. Ubuntu]
Browser: any [e.g. Chrome, Safari]
Version: any [e.g. 22]
Device: any [e.g. laptop, iPhone 8]

[Optional] Reference

As done in meshery

@amino19 I can fix this issue. I would like to work on it.


Live TV playback stuck with Widevine decrypt failure on Chromecast 4K

Media3 Version
ExoPlayer 2.18.5
Devices that reproduce the issue
Chromecast 4k, Amlogic SOC,  Android 12(google/sabrina_prod_stable/sabrina:12/STTE.220920.016.H1/9408258:user/release-keys)
Issue seems specific to ATV 12, Chromecast is the only ATV 12 device we have tried so far.
Devices that do not reproduce the issue
Amlogic SOC devices running ATV 10 or 11.
Reproducible in the demo app?
Yes
Reproduction steps
Branch dev-v2 @ commit 2e84360a44 (its what we had, but not important perhaps), build demo-NoDecoderExtension-debug.apk and load on Chromecast 4K. Amlogic SOC.
Play stream, details provided in separate email.
Expected result
Media plays successfully
Actual result
The following failure is seen:
04-10 11:57:27.034  6533  6533 D EventLogger: drmKeysLoaded [eventTime=7.44, mediaPos=3573.57, window=0, period=0]
04-10 11:57:27.040  3630  3660 I oemcrypto_tz: [OEMCrypto_TEEInvokeData:520] cmd 1105 return 28
04-10 11:57:27.040  3630  3660 E oemcrypto_tz: [OEMCrypto_TEEInvokeData:522] error return 28
04-10 11:57:27.040  3630  3660 E oemcrypto_tz: [_oecc105:1399] error return 1c
04-10 11:57:27.040  3630  3660 E WVCdm   : [crypto_session.cpp(1610):Decrypt] OEMCrypto_DecryptCENC failed: status = 28
04-10 11:57:27.040  3630  3660 E WVCdm   : Decrypt error in session sid7 during a sample with protected data: 178
04-10 11:57:27.040  6533  6933 W MediaCodec: Log queueSecureInputBuffer error: -2006
Media
Will be sent to<EMAIL_ADDRESS>Bug Report

[ ] You will email the zip file produced by adb bugreport to<EMAIL_ADDRESS>after filing this issue.

I can reproduce the problem with Chromecast 4k (Sabrina) running Android 12. I don't see a problem on a Pixel 4a running Android 12, so it's not a completely general Android 12 error.
@rrfrias could you take a look please?
[cdm_engine.cpp(306):AddKey] session_id = sid9, key_set_id = <empty>
[cdm_engine.cpp(334):AddKey] key_data = (886) CAIS4AIKVAogMjdFQjBGMEQzQThERjU4RTBFMDAwMDAwMDAwMDAwMDASIDI3RUIwRjBEM0E4REY1OEUwRTAwMDAwMDAwMDAwMDAwGgAgASgAOABAAEiPldqhBhIGCAEQADAAGmYSEEUqeKDvyol8y7LTSWcYj-QaUNY1V5aIcHdelVP6JFuLAOAYqDWyv6jeIAZIVsoytN-8y17-OCnnrc0ymmjPuwu0qgKQM7rI42jjWd4aFv1ycx6Vs_4LU1FHM3-ZiahytjRaIAEaiwEKEGgeKDi9CnfLGFpeRf8r7pASEE44YiuRsgkBOJOSUvcFIncaIKOTMs-ieattJp2LRYI8-nz6SdSCdKZs1T3L1aDyFWKJIAIoATICCABCNAogfsDvj1wBRh8fKe88CiEp0aX3sCR1AVMcTUZa4psi6goSEAnTo6b-225fqgZ7FgmomyJiBVNEX0hEII-V2qEGOPPGiZsGGiAS1yThylTpGGv2pv_-bS4BqwKGucvH83lUtmr57CHfiiKAArAaEEC5z0TgaWQC7I-mmiAiUKJNzLHdwLqwwWx0f0l7h7UGveMYAgfxuEW6J793DKna4xDZ2d21QF7b3qt0KKUu7ZCyYVCkgQCIiJR2Lssu_iMR8lRMpLpLPXDQep2PA1K4jPPwyGuCDrzvCWKptyyeuTSkblpCb7iTyV1XBfQNixpAkJeE6TyTW-UA9Vv_YCAZ5l139GmoIM5j5_ASV_2C8qFF8fdLqjgUhw7n0LsEOKpWhA4xSz1wUPu86yk8wpsbxlYTTSMKHNxpPHn76RV3tH2EfHhu9G0ZPDsoSDKIzZSzZl4qAGFoyQw0xAamsVP3qTHWAGoCfwlunUTh4l06MwoxMTcuNS4wIEJ1aWx0IG9uIEZlYiAxNyAyMDIzIDEyOjU0OjQ2ICgxNjc2NjY3MjY5KUABSrABAAAAAgAAALAABAAQiUS3RgAAABAAAABiAAAAEAAAAHQAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAADLAAAAEAAAAN0AAAAQAAAA7wAAABAAAAE9AAAAEAAAARsAAAAg7YqpTswEi2YKtBNW0xFvdbo2ie_4U9uRRdgRpUCnDw9YAA==
[OEMCrypto_TEEInvokeData:520] cmd 1105 return 28
[OEMCrypto_TEEInvokeData:522] error return 28
[_oecc105:1399] error return 1c
[crypto_session.cpp(1610):Decrypt] OEMCrypto_DecryptCENC failed: status = 28
Decrypt error in session sid9 during a sample with protected data: 178
Log queueSecureInputBuffer error: -2006
framework logs size 6; plugin logs size 9
[OEMCrypto_TEEInvokeData:520] cmd 1105 return 28
[OEMCrypto_TEEInvokeData:522] error return 28
[_oecc105:1399] error return 1c
Decrypt error in session sid9 during a sample with protected data: 178
Log queueSecureInputBuffer error: -2006
Playback error
  androidx.media3.exoplayer.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(1, null, null, video/avc, avc1.4D401E, 1368640, null, [720, 480, 29.97], [-1, -1]), format_supported=YES
      at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:586)
      at android.os.Handler.dispatchMessage(Handler.java:102)
      at android.os.Looper.loopOnce(Looper.java:201)
      at android.os.Looper.loop(Looper.java:288)
      at android.os.HandlerThread.run(HandlerThread.java:67)
  Caused by: android.media.MediaCodec$CryptoException: Operation not supported in this configuration: 6 (Unknown error -6)
  ============================== Beginning of DRM Plugin Log ==============================
    04-12 11:40:11.797 I found instance=castkey version=android.hardware.drm@1.0::IDrmFactory
    04-12 11:40:11.797 I found instance=clearkey version=android.hardware.drm@1.4::IDrmFactory
    04-12 11:40:11.797 I found instance=default version=android.hardware.drm@1.0::IDrmFactory
    04-12 11:40:11.797 I found instance=netflix version=android.hardware.drm@1.4::IDrmFactory
    04-12 11:40:11.797 I found instance=playready version=android.hardware.drm@1.4::IDrmFactory
    04-12 11:40:11.797 I found instance=widevine version=android.hardware.drm@1.4::IDrmFactory
    04-12 11:40:15.034 I [cdm_engine.cpp(918):GetProvisioningRequest] cert_type = Widevine
    04-12 11:40:15.320 I [cdm_engine.cpp(957):HandleProvisioningResponse] response_size = 3940, security_level = Default
    04-12 11:40:15.332 I [cdm_engine.cpp(140):OpenSession] New session: session_id = sid9
    04-12 11:40:15.332 I [cdm_engine.cpp(882):QueryOemCryptoSessionId] session_id = sid9
    04-12 11:40:15.334 I [cdm_engine.cpp(1901):SetPlaybackId] session_id = sid9, playback_id = qPYz3mei316n-U4r
    04-12 11:40:15.351 I [cdm_engine.cpp(227):GenerateKeyRequest] session_id = sid9, key_set_id = <empty>, license_type = Streaming
    04-12 11:40:15.399 I [cdm_engine.cpp(787):QuerySessionStatus] session_id = sid9
    04-12 11:40:15.962 I [cdm_engine.cpp(306):AddKey] session_id = sid9, key_set_id = <empty>
    04-12 11:40:15.989 E [crypto_session.cpp(1610):Decrypt] OEMCrypto_DecryptCENC failed: status = 28
  ============================== End of DRM Plugin Log ==============================
      at android.media.MediaCodec.native_queueSecureInputBuffer(Native Method)
      at android.media.MediaCodec.queueSecureInputBuffer(MediaCodec.java:2904)
      at androidx.media3.exoplayer.mediacodec.AsynchronousMediaCodecBufferEnqueuer.doQueueSecureInputBuffer(AsynchronousMediaCodecBufferEnqueuer.java:240)
      at androidx.media3.exoplayer.mediacodec.AsynchronousMediaCodecBufferEnqueuer.doHandleMessage(AsynchronousMediaCodecBufferEnqueuer.java:205)
      at androidx.media3.exoplayer.mediacodec.AsynchronousMediaCodecBufferEnqueuer.access$000(AsynchronousMediaCodecBufferEnqueuer.java:47)
      at androidx.media3.exoplayer.mediacodec.AsynchronousMediaCodecBufferEnqueuer$1.handleMessage(AsynchronousMediaCodecBufferEnqueuer.java:96)
      at android.os.Handler.dispatchMessage(Handler.java:106)
      ... 3 more

Hello @rrfrias and @icbaker  - would you be able to update this issue and let us know if you need anything from us?

@psharma676 Do we have your permission to share the stream information you sent us in the email with Amlogic?
Opened internal tracker: 281927907

@rrfrias I checked and there are no issues with sharing. Please let us know if/when there is anything else that you need from us to help move this issue along.

We have been unable to repro with an ADT-3 (also amlogic). Will work with Amlogic to repro on a Sabrina next.

Hello @rrfrias - is there an update for this issue that you can share with us?

Working with AMlogic. No update at this point.

Amlogic was able to reproduce. They think this is an HLS livestream. The problem, they think, is that the resolution changed and the corresponding key id was not in the license and needed to be fetched.
You can use the MediaDrm.OnKeyStatusChangeListener to register for notifications about key status/validity.  Let us know if you need any more information.

Thank you @rrfrias and @amlbj136 . Yes, the stream is HLS livesteam. We will investigate further on that. But we have other AmLogic devices they are not exhibiting this issue. It happens only on ChomeCast.

@sneelavara  Can you mention which Amlogic devices do not exhibit the problem?

hi @rrfrias , AmLogic S905X2-J and 905X4. They are our managed devices.

Amlogic was able to reproduce with S905X2 after 15 minutes of playback. Can you share the Android OS, image version and date?

Hi @rrfrias , we verified on Android 11. Here is the build details -
[ro.system.build.id]: [RTT0.211009.001]
[ro.system.build.tags]: [release-keys]
[ro.system.build.type]: [user]
[ro.system.build.version.incremental]: [780]
[ro.system.build.version.release]: [11]
[ro.system.build.version.release_or_codename]: [11]
[ro.system.build.version.sdk]: [30]

Let us know if you are looking for something else.
Thanks and regards,
Sadashiva N.

Hello @rrfrias and @sneelavara
I would like to bring your attention to the very first comment made by @icbaker on April 12
"I can reproduce the problem with Chromecast 4k (Sabrina) running Android 12. I don't see a problem on a Pixel 4a running Android 12, so it's not a completely general Android 12 error."
I am hoping, this should help to narrow down our suspects.

@sneelavara is the build information https://github.com/androidx/media/issues/316#issuecomment-1680023383 for a device that does not reproduce the problem? Is this for either AmLogic S905X2-J or 905X4? Amlogic is looking for image version and for an device that did not exhibit the problem.
@psharma676 We can look into this. It might be easier for Amlogic if they can investigate their own devices one of which does and does not reproduce the problem.

Hi @rrfrias, correct. https://github.com/androidx/media/issues/316#issuecomment-1680023383 is from working S905X4 device.

Hello @rrfrias I believe you are able to move forward with the information we have given so  far, let us know otherwise.

I have shared that information with AmLogic. Waiting on them to investigate.

Hello @rrfrias  - any luck or progress with this bug,  would you be able to give us an update? Thanks!

Amlogic has been able to reproduce on S905X4 running RTT0.211222.001 . This is a device with a similar enough build where you were unable to see errors.
We also were able to see a failure to playback on Chromecast 4k TTT1.221215.001 . Looking at the logs however, failure to playback occurs after about 15 minutes and it appears to be a missing content key. The failure you mentioned in the first comment is a decryption error. It appears we are unable to reproduce your precise problem. We used the stream information that you sent us.
Is it possible to send us an apk (exoplayer demo is fine) so that we can reproduce the exact problem? A bugreport might be helpful to make sure it is the same error as in the original message.

Hello @rrfrias - we retested with Media3 v1.1.1 and we can no longer see the issue. This issue has been around for a while and we suspect some change may have fixed it. Closing issue, thanks for your help!


add redirects for /cris and /cris/startnow short urls

What
Trello card: https://trello.com/c/6O3QbRqq/1276-1276-url-redirects

Recirect /cris -> surveys/informationforhouseholdsandindividuals/householdandindividualsurveys/covid19andrespiratoryinfectionssurveycris

Redirect : /cris/startnow -> /cris/startnow,surveys/informationforhouseholdsandindividuals/householdandindividualsurveys/covid19andrespiratoryinfectionssurveycris/startthesurvey

How to review
Make sure the redirections are correct
Who can review
Anyone

Does this need a leading slash for the long url?

thanks for spotting this! I will fix it shortly


[Automation]  Fix code bug syntax, logical connection usage

There are few bugs in the test code which needs to be fix..
The bugs are pretty simple ones to fix.. will post the list
Driver tested:
Build Name: #193-5b348caf5c45d8 	 Build Number: 193
Build Info:
Build #193-5b348caf5c45d8 (Aug 25, 2016 3:23:30 PM)
Build Change info:
Changes
Git (git https://github.com/openbmc/openbmc.git)
skeleton-rev.bbclass: bump version (commit: 5b348ca) (detail)
Started by GitHub push by williamspatrick
Revision: 5b348caf5c45d875cbf077c4d54e9312abf72330
refs/remotes/origin/master

Test Code bug:
Set boot policy to invalid value
[Documentation]   This testcase is to verify that proper error message is prompted
...               when invalid value to provided to boot policy.
Set Boot Policy   abc

${boot} =   Read Attribute  /org/openbmc/settings/host0    boot_policy
Should Be Not Equal    ${boot}    abc

This is wrong , there is no  "Should Be Not Equal" keyword , it should be "Should not be equal"
Bug 2:
Tests.Test Esel :: This suite is for testing esel's mechanism of checking R...
Test Wrong Reservation_ID :: This testcase is to test BMC can hand...
FFDC Collection Started         : 2016-08-26 03:34:08,011150
FFDC Collection Completed       : 2016-08-26 03:34:25,325754
| FAIL |
'Unable to send RAW command (channel=0x0 netfn=0x32 lun=0x0 cmd=0xf0 rsp=0xd4): Insufficient privilege level' does not contain 'Reservation cancelled'
Also teardown failed:
Multiple keywords with name 'Open connection' found. Give the full name of the keyword you want to use:
SSHLibrary.Open Connection
scp.Open Connection
Test Correct Reservation_ID :: This testcase is to test BMC can ha...
FFDC Collection Started         : 2016-08-26 03:34:33,878632
FFDC Collection Completed       : 2016-08-26 03:34:51,957360
| FAIL |
Unable to send RAW command (channel=0x0 netfn=0x32 lun=0x0 cmd=0xf0 rsp=0xd4): Insufficient privilege level: 1 != 0
Also teardown failed:
Multiple keywords with name 'Open connection' found. Give the full name of the keyword you want to use:
SSHLibrary.Open Connection
scp.Open Connection
This needs to be fix in lib/connection_client.robot
SSHLibrary.Open Connection


NTR: oxalate:chloride antiporter activity

Please provide as much information as you can:

Suggested term label:
oxalate:chloride antiporter activity

Definition (free text)
Enables the transfer of a solute or solutes from one side of a membrane to the other according to the reaction: chloride(out) + oxalate(in) = chloride(in) + oxalate(out)

**Reference, in format PMID:17442754
(REQUIRED)

Gene product name and ID to be annotated to this term

Parent term(s)
solute:inorganic anion antiporter activity

Children terms (if applicable) Should any existing terms that should be moved underneath this new proposed term?

Synonyms (please specify, EXACT, BROAD, NARROW or RELATED)

Cross-references

For enzymes, please provide RHEA and/or EC numbers.

Can also provide MetaCyc, KEGG, Wikipedia, and other links.

Any other information

+[Term]
+id: GO:0160046
+name: oxalate:chloride antiporter activity
+namespace: molecular_function
+def: "Enables the transfer of a solute or solutes from one side of a membrane to the other according to the reaction: chloride(out) + oxalate(in) = chloride(in) + oxalate(out)." [PMID:17442754]
+intersection_of: GO:0015297 ! antiporter activity
+intersection_of: has_primary_input CHEBI:17996 ! chloride
+intersection_of: has_primary_input CHEBI:30623 ! oxalate(2-)
+created_by: rynl
+creation_date: 2023-03-14T00:09:30Z

Thanks. @ValWood


refact(GA): hide ops impl & test_functions behind features

Description
Linked issues
Resolves #307

Superseded by #358


Reformat  lines

Work is done in preparation  for reformatting the <S> lines of boesp.
This work based on boesp.all_ansi,  with volumes 1-3.
Example:
OLD:
<S> aMzo 'pi duSTadiSTAnAM pareSAM·
syAdvinAzakRt | vAlalezo 'pi vyAghrANAM·
patsyAjjIvitahAnaye ||·
NEW:
<S>
aMzo 'pi duSTadiSTAnAM pareSAM syAdvinAzakRt |·
vAlalezo 'pi vyAghrANAM patsyAjjIvitahAnaye ||·

Also the 200 or so verses with 'long' lines are reformatted to agree more closely with the
printed text.
First Example, at saying D75:
OLD:
<S> agrAhyaM hRdayaM tathaiva vadanaM yaddarpaNAntargataM @ bhAvaH parvatasUkSmamArgaviSamaH strINAM na vijJayate |·
cittaM puSkarapattratoyataralaM vidvadbhirAzaMsitaM @ nArI nAma viSAGkarairiva latA doSaiH samaM vardhitA ||·
NEW:
<S> agrAhyaM hRdayaM tathaiva vadanaM yaddarpaNAntargataM·
bhAvaH parvatasUkSmamArgaviSamaH strINAM na vijJayate |·
cittaM puSkarapattratoyataralaM vidvadbhirAzaMsitaM.
nArI nAma viSAGkarairiva latA doSaiH samaM vardhitA ||·

Note that only preparation for making these changes has been done.
The changes have not yet been installed within boesp.all_ansi.txt.
When Thomas installs the new Volume 4 verses (but before he installs the volume 4 footnotes and corrections), then we will consider whether it is appropriate to install the prepared changes.

@thomasincambodia   This preparatory work has been pushed to Github.
So, when you're ready to push your boesp.all_ansi.txt additions for Volume 4 verses, be sure
to do a 'git pull'.
Here some preliminary remarks on Boesp4.2(B.)_ansi.txt file.
This file contains the second part (pp. 217-249) of "Zweiter Nachtrag zu meinen Indischen Sprüchen" published in Mélanges Asiatiques [...],  Vol. 8/1-2 St. Petersburg 1877.
It consists of:
--1) 252 numbered additions (7614 to 7865)  of Sanskrit Sprüche  found in subha1s2ita ratna1kara, Bombay 1872,
--2) 13 additional references to Th. Aufrecht, Ueber die Paddhati von S4a1rn3gadhara, Zeitschrift der deutschen Morgenländischen Gesellschaft, Vol 27-1, 1873.
--3) 4  references to Sprüche numbers in Boesp1-3,
variants(?) presumably also taken from subha1s2ita ratna1kara ( I have not yet checked).
All the three varieties of verses are listed alphabetically.

is marked  followed by an empty  marker, as there are no German translations, followed by  footnotes containing sources and variants

Aufrecht's contributions are preliminarily marked

the references are preliminarily marked

I have no idea so far how to integrate 2) and 3) into Boesp

pushed boesp4.2(B.)_ansi.txt

Pushed S-normalization changes into boesp.all_ansi.txt.
The changes can be reviewed with
git diff 3866288 bd09c68  -- boesp.all_ansi.txt

# The two numbers are derived from 'git log',
# the first one is the abbreviated hash of a recent commit
# and the second is the abbreviated hash of the  commit I just made.

This shows the first 'page' of differences, with a ':' at bottom of page.  Typing 'space' will show the next page of differences.   To quit the display, type 'q'.
You could see send the entire diff to a text file  by
git diff 3866288 bd09c68  -- boesp.all_ansi.txt > tempdiff.txt
Note that files whose name starts with 'temp' are not tracked by git (e.g.  will not be pushed).  This is because of the way the '.gitignore' file is set up for this boesp-prep repository.

The changes are also in the file changes/change_10.txt.
Maybe too much detail.

corrections for duplicate verses.
The first line of verses were compared, and verses with same first line examined.
About 50 such duplicate groups.
Each of these was examined in light of the printed text.
A summary of the examination is in checkdup_edit.txt.
Of these, about half were found to be in agreement with the text -- e.g., verse 418 and 419 do have the same first line, but the second line differs.  There were no 'fully' duplicate verses.  These cases generated no changes (although a small number of typos were noticed and changed).
For the other half (like 118 and 119),  the digitization was in error. Usually the error was that one of the verses needed to be rewritten - this was done by typing the HK version of the printed Devanagari text.
The changes can be examined by

git diff bd09c68  e54aa87 -- step0/boesp.all_ansi.txt

Note the 'step0/' is needed if the current direction is boesp-prep.

by clicking the e54aa87 link above, and then clicking 'Load diff' --
Looking at file step0/changes/change_11.txt  (or looking locally at this file).

I am now currently done with boesp.all_ansi.txt, which you should pull.
I'll look at Boesp4.2(B.)_ansi.txt next, in light of your comments.

Rename
I renamed 'Boesp4.2(B.)_ansi.txt' to boesp4.2B_ansi.txt.
Reason: the parentheses are awkward in file names.

Several editing steps makde to boesp4.2B.

use ° instead of º  (degree sign rather than masculine ordinal indicator)
About 30 replacements.
<eng> replacements.

35 in Devanagari text in Footnotes
5 in German text in Footnotes
7 in <S> verse,  move to Footnote  (7678, 7724, 7752)

in 7725, also remove <F>7614) KALPATARU ...

AS spelling changes

BHA1MINI1VHA1SA : 1
G4INADHARMAVIVEKA : 1
KUVALAJA1NANDA : 2
NAISH : 1
PAN4CA1JUDHAPRAPAN4CABHA1N2A : 2
PAN4CA1JUDHAPRAPAN4CABHA1NA : 1
PRASAN3GARATNAVALI1 : 1
RA1DHA1KR2SHN2ASAM3VA1DA : 2
RATNA1V : 2
VAIDJAG4I1VANA : 1
VIDVADBHU1SHAN2A : 1
VIT2HORA1AN2N2A1 : 1

I think boesp4.2B_ansi.txt can be inserted at the end of boesp.all_ansi.txt
Then, remove the first three lines of the inserted boesp4.2B_ansi.txt, namely

B.

I've checked that this combination looks fine in terms of groups.
We also will need to put [Seite4.2-217] somewhere, but not sure exactly where yet.

On the way to adding dummy <F> groups, am finding several missing verses, and misplaced footnotes and additions.  Will likely not finish adding the needed empty <F> groups until tomorrow.

empty-F preparation
changes were made to boesp.all_ansi.txt in preparation for adding the empty <F> blocks.
The changes may be reviewed in commit 0d46f23.
A copy of the  utf8-version is in changes/boesp_13.txt
Working notes for the changes are in changes/change_13.txt

dummy F-groups added.
Dummy F-groups  (of form <F>X) DUMMY) are added after the compound F-groups.
e.g.
<F>67.68.69) MBH. 5, 1393. fgg. Der·
letzte {|S4loka|} auch 1411, ²b. 1412,·
²a, wo aber in ²a. {#nityaM santaH#} st.·
{#evameva#} gelesen wird.·

<F>67) DUMMY·

<F>68) DUMMY·

<F>69) DUMMY·

The resulting version of boesp.all_ansi.txt may be seen at commit 262fee2.
A copy of the utf-8 version is also available at changes/boesp_14.txt.

@thomasincambodia   boesp.all_ansi.txt now ready for you to

add the verses from 4.2B
insert the <F4> and <F5> footnotes.

@funderburkjim
<F4.1C>-- S. 539, Z. 4. Lies «vorangehenden» st. «folgenden».
<F4.1C>-- S. 624, Z. 9 v. u. Lies 777 st. 776.
<F4.1C>-- S. 633, Spr. 2152. Lies drei Mal BAHUD. st. NI1TIS4.
<F4.1C>-- S. 639, Z. 2. Lies 3187 st. 3189 und streiche in Folge dessen {%c. d.%} u. s. w.
<F4.1C>-- S. 641, Spr. 3754, Z. 2 lies 11 st. 12.
<F4.1C>-- S. 642, Spr. 3979, Z. 2. Streiche «in Telugu-Charr.».
<F4.1C>-- S. 643, Spr. 4116. Füge «GALAN. Varr. 170» hinzu.
<F4.1C>-- S. 647, Spr. 5589, Z. 2. Lies 20, 38. Am Ende hinzuzufügen: d. {#pAdam#} st. {#padam#}.
<F4.1C>-- S. 649, Spr. 6528, Z. 3. Lies {#kSIreNAyuSyaº#}.
--- Zum Schluss bemerke ich noch, dass alle hier mitgetheilten Berichtigungen und Ergänzungen zu den Indischen Sprüchen in den vorangehenden Artikeln schon verwerthet worden sind.
Above are the doubtful correction cases, which I have also put at the top of boesp.all_ansi.txt.
(End-of-line markers have also to be added to all new lines.)
I finished adding the <F4.1> and <F4.2> but have not changed them to   .
I pushed boesp.all_ansi.txt for you to have a look at.

Have been working on PWK literary sources.

@funderburkjim,
Both @sanskritisampada and I have completed proof-reading the boesp-1 verses.
You may now do necessary checking and incorporate these into the boesp_all file(s).

Also the Greek portions were finalized by @jmigliori and submitted in various phases, to be inserted at resp. places appropriately.
So, if (and when) you make the full file in Unicode (Devanagari, Roman and Greek), I can go ahead with reading the other portions.

issue closable?


Modal customization options + cloudflare

Hey there,
I have a WordPress website using Cloudflare. I had to add data-cfasync="false" to <script type="text/javascript"> to get the theme customization options to work. I'm very much dabbling in JS still, so let me know if you need more info!

I'm running into this issue too.  The full embed script is <script data-cfasync="false" src="https://widget.battleforthenet.com/widget.js" async></script>.  See https://support.cloudflare.com/hc/en-us/articles/200169436-How-can-I-have-Rocket-Loader-ignore-my-script-s-in-Automatic-Mode- for more information.

I would assume this happens because of the cludflare Rocket Script (as seen in the header of your site)

So I would imagine there is not much we can do for this besides write in the README to include that if your site uses cloudflare.


ChannelsPreview will hide "Most active Threads" info for channel

When mouse hover on a channel with threads in a while, a box with channel threads info appear, but the channelpreview box will appear above.
Maybe there is other boxes like this, but this is the only i have seen

Is this still an issue?


Clutch Controller vs AdvDupe2

I've got an ACF tank,with the wheels advballsocket'd together, but using the ACF transmission brake seems to make the wheels freak out. I tried using a wire clutch, connecting each of 7 wheels to the base, which worked beautifully, but when I use the advdupe2 to save my tank, only a subset of the clutch links will survive when I paste the dupe. i go from two clutches with 7 links each to 5 on one side and 3 on the other. Every time I paste that dupe, it has the same pattern, 5 on one side and 3 on the other, but if I then copy it again and paste, the next iteration will have ie. 2 and 3 links.

Unable to reproduce in a simple test case, plus this is likely a problem with AdvDupe2 rather than Wiremod.

I'll look in a minute