xmanager launch cannot resolve 'docker' in subprocess

Hi All,
I am trying to run the example xmanager launch ./xmanager/examples/cifar10_tensorflow/launcher.py.
However, I get the following error. Do you have any suggestion where this error may coming from and how could I fix it?
I1020 10:57:30.250377<PHONE_NUMBER> build_image.py:134] Local docker: {'Platform': {'Name': 'Docker Engine - Community'}, 'Components': [{'Name': 'Engine', 'Version': '20.10.8', 'Details': {'ApiVersion': '1.41', 'Arch': 'amd64', 'BuildTime': '2021-07-30T19:52:10.000000000+00:00', 'Experimental': 'false', 'GitCommit': '75249d8', 'GoVersion': 'go1.16.6', 'KernelVersion': '5.10.47-linuxkit', 'MinAPIVersion': '1.12', 'Os': 'linux'}}, {'Name': 'containerd', 'Version': '1.4.9', 'Details': {'GitCommit': 'e25210fe30a0a703442421b0f60afac609f950a3'}}, {'Name': 'runc', 'Version': '1.0.1', 'Details': {'GitCommit': 'v1.0.1-0-g4144b63'}}, {'Name': 'docker-init', 'Version': '0.19.0', 'Details': {'GitCommit': 'de40ad0'}}], 'Version': '20.10.8', 'ApiVersion': '1.41', 'MinAPIVersion': '1.12', 'GitCommit': '75249d8', 'GoVersion': 'go1.16.6', 'Os': 'linux', 'Arch': 'amd64', 'KernelVersion': '5.10.47-linuxkit', 'BuildTime': '2021-07-30T19:52:10.000000000+00:00'}
I1020 10:57:30.250654<PHONE_NUMBER> docker_lib.py:64] Building Docker image
Dockerfile:

FROM gcr.io/deeplearning-platform-release/tf2-gpu.2-6

RUN if ! id 1000; then useradd -m -u 1000 clouduser; fi

ENV LANG=C.UTF-8
RUN apt-get update && apt-get install -y git netcat
RUN python -m pip install --upgrade pip setuptools
COPY cifar10_tensorflow/requirements.txt /cifar10_tensorflow/requirements.txt
RUN python -m pip install -r cifar10_tensorflow/requirements.txt
COPY cifar10_tensorflow/ /cifar10_tensorflow
RUN chown -R 1000:root /cifar10_tensorflow && chmod -R 775 /cifar10_tensorflow
WORKDIR cifar10_tensorflow

COPY entrypoint.sh ./entrypoint.sh
RUN chown -R 1000:root ./entrypoint.sh && chmod -R 775 ./entrypoint.sh

ENTRYPOINT ["./entrypoint.sh"]

Size of Docker input: 7.0 kB
Building Docker image, please wait...
Traceback (most recent call last):
  File "/Users/chuchu/anaconda3/envs/jax/bin/xmanager", line 8, in <module>
    sys.exit(entrypoint())
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/site-packages/xmanager/cli/cli.py", line 65, in entrypoint
    app.run(main)
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/site-packages/absl/app.py", line 303, in run
    _run_main(main, args)
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/site-packages/absl/app.py", line 251, in _run_main
    sys.exit(main(argv))
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/site-packages/xmanager/cli/cli.py", line 41, in main
    app.run(m.main, argv=argv)
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/site-packages/absl/app.py", line 303, in run
    _run_main(main, args)
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/site-packages/absl/app.py", line 251, in _run_main
    sys.exit(main(argv))
  File "/Users/chuchu/Documents/gt_local/try/xmanager/examples/cifar10_tensorflow/launcher.py", line 48, in main
    args={},
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/site-packages/xmanager/xm/core.py", line 484, in package
    return cls._async_packager.package(packageables)
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/site-packages/xmanager/xm/async_packager.py", line 104, in package
    executables = self._package_batch(packageables)
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/site-packages/xmanager/xm_local/packaging/router.py", line 56, in package
    for packageable in packageables
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/site-packages/xmanager/xm_local/packaging/router.py", line 56, in <listcomp>
    for packageable in packageables
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/site-packages/xmanager/xm/pattern_matching.py", line 113, in apply
    return case.handle(*values)
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/site-packages/xmanager/xm_local/packaging/router.py", line 27, in _visit_caip_spec
    packageable.executable_spec)
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/site-packages/xmanager/xm_local/packaging/cloud.py", line 153, in package_cloud_executable
    return _CLOUD_PACKAGING_ROUTER(packageable, executable_spec)
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/site-packages/xmanager/xm/pattern_matching.py", line 113, in apply
    return case.handle(*values)
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/site-packages/xmanager/xm_local/packaging/cloud.py", line 129, in _package_python_container
    packageable.env_vars, push_image_tag))
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/site-packages/xmanager/cloud/build_image.py", line 110, in build
    image_name, project, bucket)
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/site-packages/xmanager/cloud/build_image.py", line 154, in build_by_dockerfile
    show_docker_command_progress=_SHOW_DOCKER_COMMAND_PROGRESS.value)
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/site-packages/xmanager/cloud/docker_lib.py", line 70, in build_docker_image
    dockerfile, show_docker_command_progress)
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/site-packages/xmanager/cloud/docker_lib.py", line 113, in _build_image_with_docker_command
    subprocess.run(command, check=True, env={'DOCKER_BUILDKIT': '1'})
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/subprocess.py", line 488, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/subprocess.py", line 800, in __init__
    restore_signals, start_new_session)
  File "/Users/chuchu/anaconda3/envs/jax/lib/python3.7/subprocess.py", line 1551, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'docker': 'docker'

Normally, it means that docker is not available through python. In a python interpreter, are you able to run this without errors?
import subprocess
subprocess.run(["docker"], check=True)

I wonder if appending shell=True to subprocess.run on line 113 makes a difference...

Regarding the docker not being found problem. Adding an env variable is not a viable solution. We need to find an easier for the user way to fix it. Unfortunately none of the core developers has MacOs, which complicates debugging a bit.
Felix, Joao, can you please check if /usr/local/bin/docker exists on your machine? This can be done with ls -lh /usr/local/bin/docker? Do you have /usr/local/bin/ in your $PATH? Can be checked with echo $PATH. Have you used docker before or installed it to try XManager? As far as I know on MacOs you need to launch docker app from the applications folder to complete the installation and that would create /usr/local/bin/docker` symlink. Please let us know if it helps and we will update documentation.

So it sounds like we don't want to make any code changes for this bug, but we want to add more documentation to the prerequisites for macOS environments.

Closing for old age.

This issue also occurred in my local environment.
https://github.com/deepmind/xmanager/pull/10 can be avoided, but I think there are other ways. (For example, take the absolute path of the docker command as an optional argument)
I hope that this problem will be resolved someday in the future.

Pshiko, thank you for investigating the problem. We will apply the fixes you propose with some amendments. In run_container_subprocess we shouldn't have been overriding environment at all. These variables should be set inside of the container, not for the docker run process.

Fixed in https://github.com/deepmind/xmanager/commit/4b7199ebccd07ba9bb3fed0ea14cc52d824f885b .


Inference

First of all, thanks for providing this code.
After fine-tuning the model and having the checkpoints saved, how can I use that checkpoint to test it on some images? to see if the model is performing well on new images.
Thanks again.

I also want to know about this issue.

You can use this
https://github.com/luca-medeiros/lightning-sam/blob/58335bbd322c488862d6b961b9182a297a9358fd/lightning_sam/utils.py#L52 and add checkpoint loading

Thanks so much for your answer.
By running this line, I can get predicted masks over images.
!python lightning_sam/utils.py
I also created a config file (config_test.py) specifically for this testing purpose.
Just need to change the "from config import cfg" to "from config_val import cfg".
Also, change the path of saved models or other parameters.

Thanks so much for your answer. By running this line, I can get predicted masks over images.
!python lightning_sam/utils.py
I also created a config file (config_test.py) specifically for this testing purpose. Just need to change the "from config import cfg" to "from config_val import cfg". Also, change the path of saved models or other parameters.

may I ask where to load the add check


Implement 'M.find()'

Do the checklist before filing the issue:

[x] Do you have Node.js and all the relevant dev-dependencies installed?
[ ] Is this a bug fix?
[x] Is this an enhancement?
[x] Is this a feature request?

NOTE: Provide a clear and concise description of the feature that needs to be added! Or if its a bug, then provide the necessary steps to reproduce it along with screenshots.

Give your answer below:

Function: M.find()
Argument: String
Return-Type: Function
Usage:

const factorial = M.find('factorial');    /* returns the function for 'finding' the nth-factorial */
factorial(5);    /* 120 */

/* OR */

M.find('factorial')(7);      /* 5040 */
M.find('bell')(5);           /* 52 */

Implementation:

Inside the module find, provide an index.js:

module.exports = arg => {
  /* first validate the argument here ... */
 /* return the corresponding function */
  return require(`../${arg}`).find;
};

Changes:

Test this feature by only tweaking factorial module i.e. you need to change line 21:

exports.factorial = num => {
/* should change into */
exports.find = num => {

Similarly, also make changes in factorial-spec.js, line 2:

factorial = require('../src/factorial').factorial;
/* should change into */
factorial = require('../src/factorial').find;

Accordingly make changes in src/index.js and remove any factorial hooks and add find module via which we can access factorial or any nth-number.

[NOTE: M.factorial() will be deprecated after resolving this issue and similarly, within the next few weeks, we're gonna migrate to M.find() for finding all nth-number modules. Do not change any other nth number module for now, just stick with factorial. A separate issue will be opened for that once this one gets successfully resolved.]

Can I work on this? @pbiswas101

@Manvityagi You're assigned!


chore(ci): bump checkout action and add in dependabot

This will get rid of the node 12 warnings in the runs. I also just added
dependabot to ensure the action versions are kept up-to-date
automatically.

Thanks! I've seen those warnings, but hadnt invested any time into it yet :)


Update the FCM to CFv4 markup and styles

The project is currently using a really old version of the Featured Content Module. Oddly, it was never updated to use the atomic version within this code base. This change updates the markup to the atomic pattern and duplicates the Less from the latest version in Capital Framework. The /organisms/featured-content-module.less can be removed when this project is updated to use CFv4.
Removals

Removed old FCM enhancements

Changes

Updated the atomic FCM styles to the current code from Capital Framework
Updated the FCM markup to match

Testing

Run the site
Run gulp build,
Check http://localhost:8000/about-us/the-bureau/ and ensure the black bar is gone

Screenshots
Before:

After:

Before:

After: (I don't have the /f/ dir locally so I replaced the image with cats)

Notes

This PR is two 🐦  with one 🗿 , fixing the current visual bug on cf.gov and updating the project to save the CF update team the work of doing it later.

Checklist

[x] PR has an informative and human-readable title
[x] Changes are limited to a single goal (no scope creep)
[x] Code can be automatically merged (no conflicts)
[x] Code follows the standards laid out in the front end playbook
[x] Passes all existing automated tests
[x] New functions include new tests
[x] New functions are documented (with a description, list of inputs, and expected output)
[x] Placeholder code is flagged
[x] Visually tested in supported browsers and devices
[x] Project documentation has been updated
[x] Reviewers requested with the Assignee tool :arrow_right:

How does it look on a sublanding page?

@Scotchester

Tested in IE11

IE 10

IE 9

and IE 8

@sebworks I was working on porting these changes to Capital Framework and started digging into the left positioned magic number. Turns out, we were overly complicating things, and all we needed was a few floats. Tested in all browsers and works the same as it did the latest commit.

Related Capital Framework PR https://github.com/cfpb/capital-framework/pull/493

@jimmynotjim, great work on that and especially ridding us of the need to use the absolute left value.

Please check the https://www.consumerfinance.gov/ page. It looks like the left border is missing.

@sebworks that's a known issue (see this screenshot) and is more of an issue with the -1 margin and the flush block. Since this is already a beast a PR, I'd like to address that in another PR.

check it on IE9 again, merge when ready

@sebworks I did, looks great. Are you seeing something? This is what I have.

@jimmynotjim, try the /consumer-tools/auto-loans/ page.

Note: Confirmed auto loan FCM is visually broken locally due to lack of access to /f/ directory, not due to FCM code.


URLs do not respect trailingSlash

Describe the bug
URLs in the sidebar & prev/next buttons don't respect trailingSlash, leading to an extra redirect on some hosts.
To Reproduce

Go to https://starlight-blog-docs.vercel.app/blog/
Hover over any link in the sidebar, or the prev/next buttons

Expected behavior
For URLs to end with /
How often does this bug happen?
Every time
System Info
No response
Additional Context
No response

Thanks for the report.
I'm a bit confused about the repro as the plugin docs are not configured with any trailingSlash option and from a quick look, sidebar links are generated using a getPathWithBase() function which should respect the option if specified 🤔
Adding trailingSlash: 'always' to the configuration seems to also change the generated links to include a trailing slash.

oh yeah, replicated locally too. looks like that was missing from my repro :sweat_smile:. for content this support thread is what I thought was affected. looks like it must be a different issue though.

Thanks for linking the thread, I'll go take a look right now.


Lack of input on --display 2/DeX mode

OS: Windows
scrcpy version: 1.12.1
installation method: Windows release
device model: S8+
Android version: 9.0

So, I've just downloaded latest stable release, paste'd scrcpy and scrcpy-server from dev branch (as posted in another issue), and wanted to test it with my DeX, so basically hook my S8+ to the docking station and share input of my notebook to the desktop mode of my phone. Dumpsys shows 3 displays: 0 - internal, 2 - desktop mode (DeX), 10 - marked as HDMI output (shown only when hooked to docking station, has mHasContent=false).
Choosing --display 0 without any problems. When I write --display 2 and try to give any input, I get "CANNOT ASSOCIATE A DISPLAY ID TO THE INPUT EVENT". --display 10 shows nothing, as expected.

Réf: https://github.com/Genymobile/scrcpy/pull/1177#issuecomment-591333921
@peanutwolf Since the setDisplayId() method is not available before Android 10:
https://github.com/Genymobile/scrcpy/blob/eb8f7a1f288b43e333db12e0f329e7706da5a164/server/src/main/java/com/genymobile/scrcpy/wrappers/InputManager.java#L50-L60
I think that supportsInputEvents() should just just return Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q (whatever the presentation flag):
https://github.com/Genymobile/scrcpy/blob/eb8f7a1f288b43e333db12e0f329e7706da5a164/server/src/main/java/com/genymobile/scrcpy/Device.java#L118-L123
What do you think?
Also, when not supported, I'm not sure we should disable "power mode":
https://github.com/Genymobile/scrcpy/blob/eb8f7a1f288b43e333db12e0f329e7706da5a164/server/src/main/java/com/genymobile/scrcpy/Controller.java#L115-L119

@rom1v if supportsInputEvents() will return only Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q when on device with API lower then 29 and displays that has FLAG_PRESENTATION touch events will be forwarded on wrong display.
AOSP doc clearly states that input events can't be forwarded on external displays until API 29.
My guess that we should attempt to call setDisplayId only on SDK >= Q
@lovintoja

share input of my notebook to the desktop mode of my phone

I couldn't clearly understand how it works. Without scrcpy you connect some kind of touch screen to DeX?

@peanutwolf Something like 0e272561d6397c8e1159005845cf80dba6c8f2c4?

@peanutwolf What about something like 0e27256?

Yes, correct

Android version: 9.0

OK, so to summarize: input events on secondary displays may not work before Android 10.
However, they were not disabled explicitly in your case, this is fixed by 94a7f1a0f84cb4bc998e7eb117517209e3ca5584.


comment and add some more tests

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

Merging [#66][cc-pull] into [master][cc-base-branch] will increase coverage by 0.03%

@@             master        #66   diff @@
==========================================
  Files            22         22
  Lines          2100       2104     +4
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           1746       1750     +4
  Misses          354        354
  Partials          0          0

Powered by Codecov. Last updated by [475eb2f...859b6b9][cc-compare]
[cc-base-branch]: https://codecov.io/gh/CyberReboot/vent/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/CyberReboot/vent/compare/475eb2f00ab5eff69237b5b939711918cdd0b8b5...859b6b9c3419761fec3b13f8dd71edb0900c7cbb?src=pr
[cc-pull]: https://codecov.io/gh/CyberReboot/vent/pull/66?src=pr


Add Apple Silicon release

elan builds on apple silicon but running it gives:
Error(Download(HttpStatus(404)), State { next_error: None, backtrace: InternalBacktrace { backtrace: None } })
error: could not download file from 'https://github.com/leanprover/elan/releases/download/v1.0.6/elan-aarch64-apple-darwin.tar.gz' to '/var/folders/56/x4pr_1lj4kb1rn96sj0h2yhr0000gn/T/elan-update.S0kxIPElRdh1/elan-aarch64-apple-darwin.tar.gz'

Yeah, there will not be any official Silicon releases of Lean until GitHub Actions supports it. Does the x86-64 release of elan work?

I can't install elan using the curl command.
But I can install lean 3 with brew.
I guess I will stick to lean 3.

Yeah, there will not be any official Silicon releases of Lean or elan until GitHub Actions supports it. Does the x86-64 release of elan work?

You can build under https://github.com/sickcodes/Docker-OSX. I would be fine with an option to self-compile for aarch64-darwin.


Remove transpile for ES2015 on development - Fix #79

What kind of change does this PR introduce? (Bug fix, feature,
docs update, ...)

Fix #79

What is the current behavior? (You can also link to an open issue
here)

Explained on #79

What is the new behavior (if this is a feature change)?

Does not transpile ES2015 JS

Does this PR introduce a breaking change? (What changes might
users need to make in their application due to this PR?)

No

Other information:

No

@mitogh I assume ES 2016 is similarly implemented in Chrome and FF?

I'm not sure what do you mean here, would you mind explaining a bit more.
Thanks.

I'm checking that there won't be any issues for devs who use FF.

At the moment, V8 has a 98% support of ES2016 and some support for ES7 as well. So shouldn't be a problem. And it's pretty well supported on firefox as well and other browsers.
http://kangax.github.io/compat-table/es6/


Project build errors

Using Visual Studio Community 2019 the project build errors out, perhaps due to not checking every possibility on my initial install, Its not clear.  Could there be another readme or addition with the prerequisites for successfully building this project?
In my case, I just want the standard windows build so I can test with this.

.

Two problems I can find from reading the error messages:

Visual Studio 2019 doesn't support Net6.0 builds, you need to switch to VS2022.
If you don't have installed Net6.0, you need to install it, since the projects have dependencies to the framework.

The only other option is to remove all net6.0 frameworks from the *csproj files (Located under TargetFrameworks in the project (In your local folder) and try again.

Another dependency is the Windows SDK for UWP builds. The project requires the SDK 10.0.18362.0 to be installed. This can be installed via the Visual Studio Installer (Individual Components).

Thank you for that clarification.  For now I just ended up using the 3.1.2 standard nuget package.  But it would be nice to include this basic build requirement info somewhere in the repo.

Another dependency is the Windows SDK for UWP builds. The project requires the SDK 10.0.18362.0 to be installed. This can be installed via the Visual Studio Installer (Individual Components).

Er, the readme states 10.0.10240+ as supported UWP version. This doesn't seem to fit...
I've added a small pull request, just let me know if the UWP version needs to be changed :)

I have added this to the wiki now: https://github.com/dotnet/MQTTnet/wiki/Build.


Add custom tags

Added custom tag to SDK-dotnet.

Removed .vs/slnx.sqlite

@marcm-qa thanks for contribution!
I'll publish new version to nuget asap

closes https://github.com/Visual-Regression-Tracker/Visual-Regression-Tracker/issues/295

No problem. If you send me an api.json, or even better tell me how to get one I can update sdk-dotnet with any differences.


[VS Code] Starting collaboration session: Invalid URI: The format of the URI could not be determined.

Error:
Starting collaboration session: Invalid URI: The format of the URI could not be determined.
Steps to Reproduce:
1.
2.

Version Data

extensionName
VSLS

extensionVersion
1.0.419

protocolVersion
2.2

applicationName
VSCode

applicationVersion
1.35.1

platformName
Windows

platformVersion
10.0.18917

Thanks for the issue report. Your logs may provide us with helpful information. You can find your logs in the %TEMP%/VSFeedbackVSRTCLogs directory. You can attach them to this issue or send in email to<EMAIL_ADDRESS>

Hello, I have the same problem when starting a new shared session. Please find my logs attached here:
LiveShareLogs.zip

Are you by any chance trying to share without having a folder open? For example, either you just have one or more individual files open?

We have a repro for this issue and we are working on a fix. Thanks for the patience and for the feedback everybody!

The issue seems to be having an untitled file in your workspace prior to sharing. As a workaround until we publish the fix, please save your untitled files and try to share again.

I'm having this without any unsaved files.

Here's my logs:
LiveShareLogs.zip

@legomushroom Can you follow up with @rchiodo to understand what other scenarios might be impacted by this?

@rchiodo thanks for reporting this, we have a fix coming in a patch release today.

For anyone who is currently blocked, - please don't have any Untitled documents as current docuemnt when you start sharing.


Improves Medical Hud interface and functionality

About the PR
There are some changes to the Medical Hud interface: The icon has been changed and now there is one for each mob state, making it easier to recognize whether the mob is rotting, dead or crit.
Note: This PR is a duplicate of #26027, I am reopening it because GitHub for some reason was not synchronizing the commits, and, when trying to synchronize, it requested review from all maintainers. I'm sorry!
Why / Balance
It's more visually pleasing and helps with discerning mob states.
Technical details
There is a decision structure for determining which icon is appropriate for the mob's state. It's the only relevant code change.
Media

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

The icons are outdated, in the most recent commit they are identical to /tg/.
Changelog
:cl:

add: Introduce new health status icons.
tweak: Enhance the Medical HUD to display the health status of players and mobs using the newly added icons.

Sorry

Sorry

why sorry?

Sorry

Aw man, this PR looked really cool imo

This is a duplicate of another one that is still open


Move it

Could you maybe provide a little demo script using move it to control the robot? Would be really helpful for me.
Thank you in advance.

Hi @josefinemonnet , yes will definitely work on that. A little busy this week though.

I am trying to find the move group of the arm right now using a little script but I am having some trouble. The Plan is to later use move_it to control the arm more precisely. For example making sure movements are deterministic even on 7DOF using additional parameters like status and turn (KUKA style).

First I start the launch script hoping it starts the move group. ros2 launch lbr_bringup bringup.launch.py sim:=true moveit:=true

Note I am seeing some output that could be related to the problem:

[moveit_ros.planning_scene_monitor.planning_scene_monitor]: Failed to call service get_planning_scene, have you launched move_group or called psm.providePlanningSceneService()?
[rviz2-9] [INFO] [1721117634.530722284] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Failed to call service get_planning_scene, have you launched move_group or called psm.providePlanningSceneService()?

Then I launch my c++ node:

#include <memory>
#include <rclcpp/rclcpp.hpp>
#include <moveit/move_group_interface/move_group_interface.h>

int main(int argc, char *argv[])
{
  // Initialize ROS and create the Node
  rclcpp::init(argc, argv);
  auto const node = std::make_shared<rclcpp::Node>(
      "hello_moveit",
      rclcpp::NodeOptions().automatically_declare_parameters_from_overrides(true));
  auto const logger = rclcpp::get_logger("hello_moveit");
  using moveit::planning_interface::MoveGroupInterface;
  auto move_group_interface = MoveGroupInterface(node, "arm");
  ...

Output:
[ERROR] [1721118585.081668920] [hello_moveit]: Could not find parameter robot_description and did not receive robot_description via std_msgs::msg::String subscription within 10.000000 seconds.
Error:   Error document empty.
         at line 100 in ./urdf_parser/src/model.cpp
Failed to parse robot description using: urdf_xml_parser/URDFXMLParser
[INFO] [1721118595.089338332] [moveit_rdf_loader.rdf_loader]: Unable to parse URDF
[FATAL] [1721118595.089669561] [move_group_interface]: Unable to construct robot model. Please make sure all needed information is on the parameter server.
terminate called after throwing an instance of 'std::runtime_error'
  what():  Unable to construct robot model. Please make sure all needed information is on the parameter server.
[ros2run]: Aborted

Things I considered:

The parameters I set for the MoveGroupInterface might be wrong. I tried several combinations. But the namespace should be lbr and the planning_group should be arm.
I checked the ros2 param list and I see the robot_description being used by multiple nodes. I am a bit lost though on what exactly I need and where it should be published so I can use it with the MoveGroupInterface.
Could it be that the robot_description is not properly being loaded into the ROS parameter server? Unfortunately I do not quite understand how the launch file works. I found this in the move_group_launch.py:

   # RViz
    rviz = RVizMixin.node_rviz(
        rviz_config_pkg=f"{model}_moveit_config",
        rviz_config="config/moveit.rviz",
        parameters=LBRMoveGroupMixin.params_rviz(
            moveit_configs=moveit_configs_builder.to_moveit_configs()
        )
        + [{"use_sim_time": LaunchConfiguration("sim")}],
        remappings=[
            ("display_planned_path", robot_name + "/display_planned_path"),
            ("joint_states", robot_name + "/joint_states"),
            ("monitored_planning_scene", robot_name + "/monitored_planning_scene"),
            ("robot_description", robot_name + "/robot_description"),
            ("robot_description_semantic", robot_name + "/robot_description_semantic"),
        ],
    )

Maybe this also needs to be published somewhere else? I would appreciate any guidance on this.

could you try to run your node in namespace lbr. maybe that helps. You can do this via
ros2 run my_package my_node --ros-args -r __ns:=/lbr

Thank you for the input. This helped!
It now finds the robot:
run lbr_moveit lbr_moveit --ros-args -r __ns:=/lbr
[INFO] [1721214923.569955746] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 1.00808 seconds
[INFO] [1721214923.570008807] [moveit_robot_model.robot_model]: Loading robot model 'iiwa7'...
[INFO] [1721214923.570018007] [moveit_robot_model.robot_model]: No root/virtual joint specified in SRDF. Assuming fixed joint
[WARN] [1721214923.651692203] [moveit_ros.robot_model_loader]: No kinematics plugins defined. Fill and load kinematics.yaml!

However there still seems to be a problem with the kinematics plugin.

no worries, maybe you'll have to parse this file
https://github.com/lbr-stack/lbr_fri_ros2_stack/blob/humble/lbr_moveit_config/iiwa7_moveit_config/config/kinematics.yaml
Try
ros2 run lbr_moveit lbr_moveit --ros-args \
    -r __ns:=/lbr \
    --params-file `ros2 pkg prefix iiwa7_moveit_config`/share/iiwa7_moveit_config/config/kinematics.yaml

Note you can also parse parameters from a yaml file via launch files. E.g.
import os

from ament_index_python import get_package_share_directory
from launch_ros.actions import Node

config_path = os.path.join(
    get_package_share_directory("iiwa7_moveit_config"), "config", "kinematics.yaml"
)

my_node = Node(
    ...
    parameters=[config_path],
)

Thank you. I tried
ros2 run lbr_moveit lbr_moveit --ros-args -r __ns:=/lbr --params-file /home/ros2_ws/install/iiwa7_moveit_config/share/iiwa7_moveit_config/config/kinematics.yaml`

The path to the file is correct but I get:
[ERROR] [1721721951.561096407] [rcl]: Failed to parse global arguments
terminate called after throwing an instance of 'rclcpp::exceptions::RCLInvalidROSArgsError'
 what():  failed to initialize rcl: Couldn't parse params file: '--params-file /home/ros2_ws/install/iiwa7_moveit_config/share/iiwa7_moveit_config/config/kinematics.yaml'. Error: Cannot have a value before ros__parameters at line 2, at ./src/parse.c:793, at ./src/rcl/arguments.c:406

I also tried the approach using a launch file:
import os
from launch import LaunchDescription
from ament_index_python import get_package_share_directory
from launch_ros.actions import Node

def generate_launch_description():

    config_path = os.path.join(
        get_package_share_directory("iiwa7_moveit_config"), "config", "kinematics.yaml"
    )

    return LaunchDescription([
        Node(
            package='lbr_moveit',
            executable='lbr_moveit',
            name='lbr_moveit_node',
            namespace="lbr"
            parameters=[config_path],
        ),
    ])

The results are identical:
[lbr_moveit-1] [ERROR] [1721723234.073546384] [rcl]: Failed to parse global arguments
[lbr_moveit-1] terminate called after throwing an instance of 'rclcpp::exceptions::RCLInvalidROSArgsError'
[lbr_moveit-1]   what():  failed to initialize rcl: Couldn't parse params file: '--params-file /home/ros2_ws/install/iiwa7_moveit_config/share/iiwa7_moveit_config/config/kinematics.yaml'. Error: Cannot have a value before ros__parameters at line 2, at ./src/parse.c:793, at ./src/rcl/arguments.c:406
[ERROR] [lbr_moveit-1]: process has died [pid 2973, exit code -6, cmd '/home/ros2_ws/install/lbr_moveit/lib/lbr_moveit/lbr_moveit --ros-args -r __node:=lbr_moveit_node --params-file /home/ros2_ws/install/iiwa7_moveit_config/share/iiwa7_moveit_config/config/kinematics.yaml'].

Since the error suggested that there cannot be a value before ros_parameters. I added ros__parameters to the kinematics.yaml.
Then the error changed to: Error: There are no node names before ros__parameters at line 1, at ./src/parse.c:629, at ./src/rcl/arguments.c:406
This is probably not the right approach but might give insight into the problem.

arg you are right, how annoying. This file is from MoveIt and not configured to be used as parameters file.
You'd have to add your node name, however, this isn't a good solution.
E.g.
lbr_moveit:
  ros__parameters:
    arm:
      kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin
      kinematics_solver_search_resolution: 0.0050000000000000001
      kinematics_solver_timeout: 0.0050000000000000001

I had the same problem, so I followed the part where the name space was added as /lbr. However, the problem is that when I checked the action, the server was declared as /lbr/move_action, but when I run c++ code, it was declared as /move_action client, so it doesn't seem to have much response. How do I solve this?

Putting this for reference:
https://github.com/moveit/moveit2_tutorials/blob/20be39797b17e460fda48975a0a8ee25f8ad87ac/doc/examples/moveit_cpp/launch/moveit_cpp_tutorial.launch.py#L10C5-L10C18
(configs are parsed to the node via moveit config builder)

arg you are right, how annoying. This file is from MoveIt and not configured to be used as parameters file.
You'd have to add your node name, however, this isn't a good solution.
E.g.
lbr_moveit:
  ros__parameters:
    arm:
      kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin
      kinematics_solver_search_resolution: 0.0050000000000000001
      kinematics_solver_timeout: 0.0050000000000000001

A slightly better approach would be to read the configs as opposed to parsing the path.
May I ask, do you have a fork of this repo that we could collaborate on?
Just wondering if there is a better way to use the MoveIt C++ API (haven't got experience either)

Ah seems I was close with the ros__parameters key. But I agree it's not an optimal solution.
Regarding the fork: Currently all I have done is create a c++ ros2 package called lbr_moveit that contains node with

the hello world moveit content following the docs: https://moveit.picknik.ai/main/doc/tutorials/your_first_project/your_first_project.html
and the launch file for that node (posted above)
in order to test out moveit with this stack.
I am also looking for an optimal way to achieve this.
I can create a fork with these changes for easier collaboration tomorrow morning.

There is now a demo, you can pull the latest changes from the humble branch.
You can find the doc here: https://lbr-stack.readthedocs.io/en/latest/lbr_fri_ros2_stack/lbr_demos/lbr_moveit_cpp/doc/lbr_moveit_cpp.html
The difficulty is that the MoveGroup for this repository lives inside a namespace.

When moving motion planning is conducted through rviz, it seems to be accessible normally. But why is it impossible to access it if it is conducted through c++?


sort-comp wrong order with RegExp rules and static methods

I believe this issues comes from #1795
The Airbnb rules for react include sort-comp with regex matching.  source here
If you have a static method that matches any of the 3 RegExp values (e.g. renderCell) then this will push to indexes, and the following check for method.static will not happen because of the new conditional on empty indexes.
This should be valid according to the Airbnb Rules.
class Row extends React.Component {
  static getDelta(data) {
    ...
  }

  static onTimeout() {
    ...
  }

  static renderCell(data) {
    ...
  }

  constructor(props) {
    ...
  }

  render() {
    ...
  }
}

Is the issue that #1795 needs to be reverted, or that the regex checking needs to be done in a second place?

I think we should check for getDerivedStateFromProps more explicitly rather than use indexes.length === 0 condition

that makes sense. Can someone put up a PR?

I'm creating a PR. The fix is a bit more involved than a revert or added RegExp check.

There's a contradiction when method is static and matches regexp:

if static is more important, than we can't use regexps for matching static methods (which is not good)
if regexp is more important, than current behaviour is not a bug

I think the problem is more deeper than it seems.

The way that I'm implementing it at the moment is group order based. It's not a massive change to make statics the priority, but as you say, the API isn't flexible enough to cover all potential desired behaviours.

Possible change of plan. I just hit the test that says that if a method matches two RegExps then it can be placed in either location.
Should this be the case for everything?
That would mean that static getDerivedStateFromProps could either he with the lifecycle methods or with the statics.
The example in the issue description could have the methods with the statics, or with the RegExps.
This is the most flexible option, but there will be people who do not like that flexibility.

I think by default we should place getDerivedStateFromProps  within lifecycle methods. But users should be able to override this behaviour by excluding getDerivedStateFromProps  from lifecycle group.
For example, in this case lifecycle group doesn't include  getDerivedStateFromProps, so it should go with statics.

I have no doubt that havinggDDFP in lifecycle is a valid view. I'm willing to bet others think having it with statics is preferable. The precedence set with RegExps when this rule was first created is that things can appear in any matching group.
Making it more strict would require going back to your original PR commit and having explicit exceptions to rules. It may be the case that my PR will be a partial revert of your PR in your eyes, since it's less strict.
Allowing static methods/properties to be in multiple places fixes two additional issues. #1838 and #1808
I'll push the PR and see what the feedback is. It should be done shortly after adding a test for an undiscovered bug that my changes fix.  (While hopefully not breaking things we don't have tests for.)


main development has been forked + planned changes

This is a notice that the main development of Seisflows is currently taking place on a separate fork which we plan to merge into this repository at some point in the coming future.
Working with @rmodrak and others, I've been implementing Seisflows in an earthquake tomography problem for New Zealand. Along the way I forked at d906298 and did an overhaul of the source code, mostly updating syntax to Python3 and writing docstrings/comments where necessary. A direct link to this new branch, nicknamed Seisflows3, can be found here:
https://github.com/bch0w/seisflows/tree/seisflows3
Discussing with Ryan, we see this fork as a candidate for future development of Seisflows, however, we both agree that a direct merge would be inefficient due to the level of divergence.
We propose that Seisflows3 be made a branch in this repo, eventually becoming master branch. The current master (46a9604) will be left as is for those who would like to continue using it.
Feedback very welcome in this transition phase.  Stay tuned!

The separate fork (SeisFlows3) has been merged back into this repository. All future development will continue here: github.com/adjtomo/seisflows


CSphere image thumbnail link change (from https://thumbnails.calisphere.org --> https://calisphere.org) - UCI Artists Book portal updates

Transferred from this Trello card: https://trello.com/c/vP1NDKnR/410-csphere-image-thumbnail-link-change-from-https-thumbnailscalisphereorg-https-calisphereorg-uci-artists-book-portal-updates

Updated July 2, 2024:
Calisphere thumbnail URLs now have the collection ID:

https://calisphere.org/crop/100x100/26147/19662ad7863ffbdda69de5dbfdb3817b
https://calisphere.org/crop/250x250/26147/19662ad7863ffbdda69de5dbfdb3817b

Updated Nov 23, 2024:
Amy fixed the thumbnail issue for these thumbnail links! The thumbnails now work: Artists' Books Discovery Tool
Though we still may want to have the conversation about URLs.
Card description Aug 2022:
I'm unsure if this is a CSphere issue (or if we need to ask UCI to update links), but the image thumbnails on this UCI tool no longer work: https://www.lib.uci.edu/sites/all/plodab/index.php -- this links to the particular tool, and you kinda need to click through to an object pop-up to see that the image thumbnails are not working.
The image thumbnail points to: https://thumbnails.calisphere.org/clip/250x250/19662ad7863ffbdda69de5dbfdb3817b
This version of the link seems to work: https://calisphere.org/clip/250x250/19662ad7863ffbdda69de5dbfdb3817b (remove thumbnails)
Also, here's the CSphere object record: https://calisphere.org/item/ark:/87280/t0f769gk/
And the image thumbnail on the record page: https://calisphere.org/crop/100x100/19662ad7863ffbdda69de5dbfdb3817b
Were the thumbnail image URLs updated at some point? Is there a way we can easily resolve on our end? Or do we need to ask UCI to update the thumbnail image URLs?

Message to Audra, Madelynn, and Paul to request the update: https://help.oac.cdlib.org/a/tickets/140814

Once this is done, we can remove harvested_images/ and the thumbnailer beanstalk.

@amywieliczka UCI updated the Artists' Books portal, changing the old https://thumbnails.calisphere.org/clip/ base URLs to the new https://calisphere.org/clip/ base URL. So we're all set on that front! https://www.lib.uci.edu/sites/all/plodab/index.php


[macOS Big Sur] Cannot connect to Extensions Marketplace, ERR_CERT_INVALID

VS Code Version: 1.54.3

Version: 1.54.3
Commit: 2b9aebd5354a3629c3aba0a5f5df49f43d6689f8
Date: 2021-03-15T11:00:52.911Z
Electron: 11.3.0
Chrome: 87.0.4280.141
Node.js: 12.18.3
V8: <IP_ADDRESS>-electron.0
OS: Darwin arm64 20.3.0

OS Version: macOS Big Sur 11.2.3

Issue:
Cannot install or list extensions, extensions sidebar says "We cannot connect to the Extension Marketplace at this time, please try again later". When network error is checked in devtools, it complains about certificate being invalid.
Steps to Reproduce:

Go to extensions sidebar
It displays "We cannot connect to the Extension Marketplace at this time, please try again later" instead of the list of Popular extensions.
F1 -> Developer: Toggle Developer Tools
Refresh the Extensions Sidebar which should result in this:

VSCode on Windows has no problem loading extensions at the same time.

Does this issue occur when all extensions are disabled?: Yes, I cannot install any :P

I see ERR_CERT_INVALID error - you seem to have proxy set up, please check your proxy settings and retry
@chrmarti FYI

@microdee Can you access https://marketplace.visualstudio.com using Chrome/Chromium?

yeah it appears that I cannot access that URL from chromium either. but I don't understand, this is a brand new machine I've never touched or even looked at proxy settings. I'll see what I can do in that regard

yeah I cannot see anything enabled in the proxy settings

When you click on the icon to the left of the URL in the location bar in Chromium, you can get additional details on the certificate. What does that show?

I hope this includes info which helps. This is chromium:

DNS names

DNS names continued:

More DNS names:

End of certificate:

Oh yeah! one detail which I forgot to mention. I have an annoying situation where I'm forced to use the root user against my better judgement. Maybe that can mess up chromium certificate checks, which would be very disappointing. And it actually does, in fact I cannot load any https website on root in chromium. bummer.

This looks like a Chromium bug, it says the certificate is "valid", but it still doesn't trust it.
I don't have the trust section when I look at this in Chrome on Mac (Catalina), what do these options do?

well I can set them as "Always Trust" and then nothing changes. I agree this seems to be a deeper problem of chromium on the root user. However I can also see why Google would decide to just not trust anything on the root user of MacOS. I can try installing extensions on root from VSIX files maybe.

Ok, closing as upstream since we don't plan to follow up with Chromium in this case. Thanks.


alpha-embedded: isAlpha code Added

Motivation for this change
Hydra still can't build the alpha-embedded tools as there is another error. This time, the isAlpha code was missing. This is the fix for the missing code.
Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

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

Could you squash these commits?

I can squash it before merging.


Links to Terraform files for IAM are incorrect

The links and locations in the following Readme for the actual terraform templates are incorrect - https://github.com/vallard/K8sClass/blob/master/02/terraform.md
Specifically, the terraform subdirectory and associated iam and eks directories do not exist in the 02 directory
cd 02/terraform/iam
cd 02/terraform/eks

yeah, you're right.  I updated the class so those have moved and should be fixed in the master branch.  The new class does a bunch of Terragrunt!
However, I put a link in the main README.md to look at a version back when terraform was in the 02 directory so you should be able to use that.  Sorry it's taken me so long to see this!  I need to set up alerts on this repo!


Upgrade kubernetes-1.12.6 -> kubernetes-1.12.9

In knative/serving#4588, the Kubernetes dependency was updated to 1.12.9. This PR puts pkg on the same version.

/test pull-knative-pkg-go-coverage
Seems to be an infrastructure error?

/lgtm
/approve


Some questions for "Semantic Analysis of the Inverted Codes" in the paper?

I want to know how to use boundaries to evaluate the attribute classification performance using the inverted codes? In addition, would you mind sharing this code and the off-the-shelf classifier?

Given the boundary, you can compute the distance from a code (corresponding to a synthesis) to this boundary, as the data. Meanwhile, you can get the semantic score for the synthesis, as the label. With such data-label pairs, you can draw the precision-recall curve like in the paper.

Thanks for your reply! How to compute the distance from a code to an attribute boundary, by using a cos(x)? I think cos(x) maybe perform well since it outputs a score with [0,1], when score=1, only and only if orthogonal. I summary some ideas for evaluating the semantics:
1、Training a classifier that can predict arbitrary image labels, and the predict labels as ground truth. The same idea as your paper.
2、Sampling latent code and generating its corresponding images, and predict that images label. Then we have pairs data (latent code, labels).
3、Obtain a linear model with input latent code and output labels.
4、Using the well-trained linear model to predict inverse code with different methods, compute accuracy between predicting labels and ground truth.
What do you think of this idea?

We compute the score between a particular latent code and a semantic boundary with Euclidean distance.

Your pipeline is correct!

Thanks for your reply!  I will cite your hard work!


protoc-gen-go/generator is deprecated

When executing the binary "go/bin/protoc-gen-map", there is a warning about "protoc-gen-go/generator" to be deprecated:
WARNING: Package "github.com/golang/protobuf/protoc-gen-go/generator" is deprecated.
	A future release of golang/protobuf will delete this package,
	which has long been excluded from the compatibility promise.

Is there an updated or replacement package for this? Is there a plan to fix this in the near future?
Thanks,
H

this also concerned me a bit.

I am aware of this change, the generator has moved to the protogen package. Many projects which depended on the generator have this issue (gateway, argo).
I am currently refactoring protoc gen map to use carta. this will be available in next release.
However, with the deprivation of protoc-gen-gogo and addition of the protoreflect package, I believe I will tackle this issue in the following release.


Shapes of both tensors are mismatching

2018-07-31 19:50:48.846720: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
word_to_index dict restored from 'embeddings/glove.840B.300d.json'.
2018-07-31 19:50:52.224149: W tensorflow/core/framework/allocator.cc:108] Allocation of<PHONE_NUMBER> exceeds 10% of system memory.
Traceback (most recent call last):
File "2_word_similarities_tf.py", line 78, in
tf_embedding = load_embedding_tf(word_to_index, TF_EMBEDDINGS_FILE_PATH, word_representations_dimensions)
File "2_word_similarities_tf.py", line 49, in load_embedding_tf
embedding_saver.restore(sess, save_path=tf_embeddings_file_path)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/saver.py", line 1752, in restore
{self.saver_def.filename_tensor_name: save_path})
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 900, in run
run_metadata_ptr)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1135, in _run
feed_dict_tensor, options, run_metadata)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1316, in _do_run
run_metadata)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1335, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [2196015,300] rhs shape= [2196018,300]
[[Node: save/Assign = Assign[T=DT_FLOAT, _class=["loc:@Embedding"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](Embedding, save/RestoreV2)]]
Caused by op u'save/Assign', defined at:
File "2_word_similarities_tf.py", line 78, in
tf_embedding = load_embedding_tf(word_to_index, TF_EMBEDDINGS_FILE_PATH, word_representations_dimensions)
File "2_word_similarities_tf.py", line 48, in load_embedding_tf
embedding_saver = tf.train.Saver(variables_to_restore)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/saver.py", line 1284, in init
self.build()
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/saver.py", line 1296, in build
self._build(self._filename, build_save=True, build_restore=True)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/saver.py", line 1333, in _build
build_save=build_save, build_restore=build_restore)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/saver.py", line 781, in _build_internal
restore_sequentially, reshape)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/saver.py", line 422, in _AddRestoreOps
assign_ops.append(saveable.restore(saveable_tensors, shapes))
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/saver.py", line 113, in restore
self.op.get_shape().is_fully_defined())
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/state_ops.py", line 219, in assign
validate_shape=validate_shape)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_state_ops.py", line 60, in assign
use_locking=use_locking, name=name)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/op_def_library.py", line 787, in _apply_op_helper
op_def=op_def)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 3414, in create_op
op_def=op_def)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1740, in init
self._traceback = self._graph._extract_stack()  # pylint: disable=protected-access
InvalidArgumentError (see above for traceback): Assign requires shapes of both tensors to match. lhs shape= [2196015,300] rhs shape= [2196018,300]
[[Node: save/Assign = Assign[T=DT_FLOAT, _class=["loc:@Embedding"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](Embedding, save/RestoreV2)]]

Strange, it looks like 3 rows were added to the tensor. I'd be intrigued to see your "2_word_similarities_tf.py" file as it may differ from the current project.


Additional checks before pausing a server

VirtualDisk health isn't the only thing that can impact the cluster roles. Before pausing a cluster node with S2D you should confirm:

no storage jobs are running (a rebalance or optimization job can cause issues even if all VirtualDisks are healthy).
no backup jobs at a CSV level are running...If VSS has a lock on a CSV and you pause the host that owns that CSV or try to move that CSV ownership to a different node it can cause the CSV to go offline and all the virtual machines that reside on that CSV to crash.
Both of these scenarios are easy to test...for example, in a 4 node cluster add a couple of disks to each host and then pause and reboot host 1, then after it comes back up resume it and watch the repair jobs finish and do the same to another node, repeat for a third node and watch your CSVs fail...

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 393d4e4d-1975-93bf-f405-e81ae50dcb40
Version Independent ID: a38288af-3054-eebe-2d81-8c2f3be3eb60
Content: Taking a Storage Spaces Direct server offline for maintenance
Content Source: WindowsServerDocs/storage/storage-spaces/maintain-servers.md
Product: windows-server-threshold
GitHub Login: @EldenChristensen
Microsoft Alias: eldenc

#please-close


Unable to install testfixtures 4.3.0 from pypi (missing tox.ini in source archive)

[nix-shell:~/src]$ pip install -U testfixtures
You are using pip version 6.0.8, however version 7.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting testfixtures
  Using cached testfixtures-4.3.0.tar.gz
    Traceback (most recent call last):
      File "/nix/store/8pvy2d921wmink4abi41kqybk6q8v0df-python3-3.4.3/lib/python3.4/configparser.py", line 1116, in _unify_values
        sectiondict = self._sections[section]
    KeyError: 'testenv'
    During handling of the above exception, another exception occurred:
    Traceback (most recent call last):
      File "<string>", line 20, in <module>
      File "/run/user/1000/pip-build-v8n5_qum/testfixtures/setup.py", line 20, in <module>
        for item in config.get('testenv', 'deps').split():
      File "/nix/store/8pvy2d921wmink4abi41kqybk6q8v0df-python3-3.4.3/lib/python3.4/configparser.py", line 754, in get
        d = self._unify_values(section, vars)
      File "/nix/store/8pvy2d921wmink4abi41kqybk6q8v0df-python3-3.4.3/lib/python3.4/configparser.py", line 1119, in _unify_values
        raise NoSectionError(section)
    configparser.NoSectionError: No section: 'testenv'
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "/nix/store/8pvy2d921wmink4abi41kqybk6q8v0df-python3-3.4.3/lib/python3.4/configparser.py", line 1116, in _unify_values
        sectiondict = self._sections[section]
    KeyError: 'testenv'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "<string>", line 20, in <module>
      File "/run/user/1000/pip-build-v8n5_qum/testfixtures/setup.py", line 20, in <module>
        for item in config.get('testenv', 'deps').split():
      File "/nix/store/8pvy2d921wmink4abi41kqybk6q8v0df-python3-3.4.3/lib/python3.4/configparser.py", line 754, in get
        d = self._unify_values(section, vars)
      File "/nix/store/8pvy2d921wmink4abi41kqybk6q8v0df-python3-3.4.3/lib/python3.4/configparser.py", line 1119, in _unify_values
        raise NoSectionError(section)
    configparser.NoSectionError: No section: 'testenv'
    ----------------------------------------
    Command "python setup.py egg_info" failed with error code 1 in /run/user/1000/pip-build-v8n5_qum/testfixtures

+1

Just pushed a 4.3.2, can you try that?

Thanks, @cjw296. v4.3.2 installs successfully.


Stop skipping matching of request bodies

if a stub doesn't specify data, but the request has it, just match as true anyway (so you don't have to define data of every POST request)
remove the skipping of data matching if the stub is being validated

@harrison can you please review?

:+1:


Add unittests to test the service-info, get object tests and report generation for bad_mock server

This has been completed with this pull request


Check fb app links client side

Please submit your PR against the staging branch.
Resubmittal of approved PR against staging

nonthreatening merge - carrying over 👍 - Derrick, 👍 - Ahmed


CameraModule from NativeModules is returned as undefined when using create-react-native-app on Android

Please make our job easier by filling this template out to completion. If you're requesting a feature instead of reporting a bug, please feel free to skip the Environment and Reproducible Demo sections.
Description
CameraModule from NativeModules is returned as undefined when using create-react-native-app. This is used in the de facto camera library for React Native, react-native-camera and breaks any camera functionality I could find.
Expected Behavior
I used the react-native-camera and other camera libraries on Android, and expected it to work, but it didn't work at all and gave me an error as per: https://github.com/facebook/react-native/issues/15809
Observed Behavior
https://github.com/facebook/react-native/issues/15809
Also specify:

Operating system: Ubuntu, but also the same on MacOS
Phone/emulator/simulator & version: Android all phones

Reproducible Demo
https://snack.expo.io/BJJlfZhYZ - Scan with an Android phone.

It's not working for me. I've started the App using react-native init so this solution does not solve the issue for me. Is there anothere alternative? I've been stuck since last week and my app is not working properly.

Hi! Using libraries with native code (like react-native-camera) will require ejecting from CRNA or making use of react-native init. That said, the Expo SDK (which you can use with CRNApps) now includes a more complete camera option.


Hiatus explaination (originally "GreasyFork userscript entry gone")

Plain and simple, the userscript is no longer available on GreasyFork (returning 404). Personally, I have ratelimit issues with OpenUserJS due to my IP, could we get a fully compiled version on GitHub (perhaps in a separate repository or using GitHub releases)?
Thanks,
pointy

Thank you for all your hard work @raingart, I wish you well with whatever you decide to do in the future.

 I guess we'll have to find an alternative that can come close, which is a doubt, but you never know. You deserve a long "break" and if you don't come back then adios and take care.

sad to see that you had to go through those things.
just want to let you know that there's people that's grateful for your work like me.
honestly i think nova save youtube personally, i was so tired of youtube and hesitated before i click on an youtube link.
but i'm glad to know that you want to treat yourself better, because you definitely worth that in my opinion.
this “a people not value the things they get for free” thing hits me so hard, it reminds me of how some of my friends had treated me, but i feel so much better a couple of months after i left them.
i hope youtube will have you in their team, or other companies that value your work.
may the odds be ever in your favor.

omfg -.- just now tried to update the script in another profile then visited greasyfork.
well so it goes.
all the best.

Another one bites the dust. I started over 10 years ago with Youtube Center, then Youtube Plus which turned into Iridium and now I'm on Nova.
This is such incredibly sad news. I can't live without:

Pin player while scrolling (No other extension does it as well as Nova)
Player shortcuts always active
Default tab on channel page

And just wildly useful feature that make Youtube more tolerable:

Fix channel links in sidebar (I've gotten really used to this)
Date format display ("1 year ago" is NOT useful or accurate enough, Youtube..)
Disable scroll to top on click timestamps

Of course this is a small selection of all the wonderful things this script can do.
PS: As a small bit of 'criticism', I think perhaps you've let Nova get too big. This is what happened to Youtube Center. Yeppha was constantly taking people's requests for tiny, niche features and implementing them, then getting overwhelmed and I feel like that's been the case for Nova as well.
It's okay to say no to adding a feature.
Of course if it's not too difficult to add and doesn't hinder other feature, it's not a big deal, and extra customization is awesome.
But at some point you're having to deal with too many feature and bug reports on them, etc. It can get overwhelming.
And yeah, it sucks when people don't appreciate a free thing. A lot of people also simply don't realise how much work something like this is. They get a bug, file a report and want it fixed in 3 seconds. And when that doesn't happen, they get angry.

In any case, Thank You very much for all the work you've done on Nova!! I hope you come back to it at some point.

This script is amazing! It's disappointing that you won't be maintaining it for the near future, but I want to express my gratitude. Your work has really made my YouTube experience exceptional, I hope you return someday. Take care!

Thanks for the update on how things are going @raingart, glad to see you've been keeping yourself busy. I'll check out the dev build if I end up running into the TrustedHTML error (haven't so far). Appreciate you. <3

yoooo buddy. tysm. hope ur doing well.
so far the few things I need from Nova still work 😅

but what causes a storm inside me is that someone is trying to impose something on me that’s worse than what happened. This is where my stubbornness begins to work.

you need to step away a little bit, figuratively, and dont take everything so serious.
One example I can give is Freetube. (funny enough it's youtube related and on github too). I gave a suggestion and it was turned down because "there are already too many options". ... oh well

I understand your viewpoint but there are allot of users creating issues for things like this. If we would implement them all FT would have allot of settings on top of the already large setting page which is in itself an issue. Thats why https://github.com/FreeTubeApp/FreeTube/issues/251 is the only good solution for this.

https://github.com/FreeTubeApp/FreeTube/issues/4989
I'm a pretty altruistic person, but if I had an opensource project and maybe the donations wouldn't do so well in comparison to the bitching, I really don't know how long I would keep at it.
unless of course the project is something that I needed and it being public is just a side effect. which AFAIK is how many opensource project start.

Thanks for the update @raingart. It's great to hear that you're exploring new opportunities and we're looking forward to seeing what the future holds for you and Nova. Take care and thanks for keeping in touch! 👊

I really love Nova. It's just so great and nothing else works nearly as well.   Certainly understandable, but still such a tragic loss. Always remember that what you created is a remarkable achievement. No low-life spammer or 13 year-old griefer can ever take that away from you.
I truly hope someday you'll return.

wow great you're still working on this. at some point you told me "there's always Iridium".
bro. I tired iridium, it has like 10 options and iirc none i would use :O 😭
(this is not a request.)

The script is incredibly huge! Let's start in order.

who are you telling lol
great rundown on the ai stuff 👍

was never the biggest fan of Feynman but I liked his "ice is slippery" interview. but whatever gets the gears going.
recently got this recommended by yt https://www.youtube.com/watch?v=TwKpj2ISQAc


UofT-DSI | production - Assignment 1

What changes are you trying to make? (e.g. Adding or removing code, refactoring existing code, adding reports)
Adding functionality to load and process Parquet files using Dask.
What did you learn from the changes you have made?
I learned how to load environment variables, locate files with glob, and manipulate data with Dask.
Was there another approach you were thinking about making? If so, what approach(es) were you thinking of?
I considered using only Pandas for loading and processing data but opted for Dask for better handling of large datasets.
Were there any challenges? If so, what issue(s) did you face? How did you overcome it?
I faced issues with file paths and loading data into Dask. I resolved it by verifying paths.
How were these changes tested?
N/A
A reference to a related issue in your repository (if applicable)
N/A
Checklist

[ x] I can confirm that my changes are working as intended

A1 complete


fix issues when trying to have patternfly.scss as a dependency

When importing patternfly.scss as a dependency in a project, a series of errors are thrown for not finding /components/_all.scss and /layouts/_all.scss files.
In fact, when installing PF4 via npm install @patternfly/patternfly --save the two files are not currently copied over.
The PR also fixes a second error thrown by gulp after manually patching the _all.scss files: the @import "../../patternfly-imports" in components/SkipToContent/skip-to-content.scss doesn't specify an extension and gulp is not sure whether it would need to import patternfly-imports.css or patternfly-imports.scss.

PatternFly-Next preview: https://patternfly-next-pr-2405.surge.sh

Didn't mean to close, reopening in #2407


Fixed createCoordinate issue

Fixed issues. So many. (Not!)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: dirkriehle:x: friedalexuniYou have signed the CLA already but the status is still pending? Let us recheck it.


Jdb 25 implementation of control interface

Be careful the controls are reversed

the code is a bit long but it is functional


Projection Issue - Low Priority

DEM Geotiffs with NAD 83 UTM Zone 10N projection produce derivative geotiffs with grids in the same coordinate system, but the metadata has changed to GCS NAD 1983 with decimal degree units, which causes difficulties in GIS.

@draconigae So I'm having a hard time understanding exactly what the issue is here. You say that the derivative grids have the same coordinate system but then that the metadata has changed. Are you saying that the coordinate system has changed but that other grid characteristics (e.g. the number of rows and columns) has stayed the same? I'm just trying to clarify.

I believe that the recently committed updates to the GeoTIFF reader/writer will correct this issue. If a TIFF is used as the input to a tool and a TIFF is also specified as the output, WhiteboxTools now simply copies the georef tags from input to output rasters.


Web support

Had to change the logic a bit to support web, as we do not get a codePoint like the currently supported keyboards. Made the Stream a char stream instead of int.
Found that giving the Widget a bufferDuration resulted in some missing inputs, but this was fixed by giving it a 200-500ms Duration. Not sure how you'd like to see this solved. Let me know if you want anything else of have any other feedback :)

Tested it on Android with a Bluetooth keyboard, and everything seems to be working fine. Tested the issue with bufferDuration and it seems to be because I'm using a keyboard instead of a scanner to test it. This gives the input inconsistent times between the KeyEvents.
I hope someone is able to give this PR a look in the near future, and test their usecases. I'm able to test this with an actual barcode scanner somewhere in the next two weeks, I'll keep this open until at least then.

@shaxxx would you be able to publish the 0.1.1 version?

Hopefully, first thing in the morning.

Is there any kind of OS dependency? I have Linux running flutter web and using the example app, I am unable to log anything. Is there something I am missing on?

@rshrc You might need to increase the bufferDuration

I apologize for a delay, published 0.1.1 to pub.dev.
Thank you for your work.


Fixed swapped primary/accent colors on a few buttons

Ok, for real this time.
Fixed swapped primary/accent colors on RaisedButton, FlatButton, and FloatingActionButton (forgot that one last time!).

Notice that it's a breaking change:
Before:

After:

notice that it's a breaking change

@ffxsam please could you add this to the Changelog in HEAD as part of this PR?

Ok, now before I screw this up.. :)
I'm on my button-color-fixes branch. If I edit this CHANGELOG.md file and commit, that'll be two commits on this branch now. Should I squash them into one, and then push -f? Just asking because the contribution guide doesn't mention push force nor squashing.

Also, would you like me to add any changes (breaking or otherwise) to CHANGELOG from now on?

We are just asking for breaking changes. It's important for people how are upgrading their dependencies.

As a general rule just push changes, it makes them easier to review, then we'll ask you to squash before merge.
I this case you can squash since it's such a simple change.

Already squashed and pushed. Thanks for the tip!

@ffxsam Thanks a lot :+1: :+1:

Happy to help!


Doubts with bonds_type

Hi Andrew. I've been looking at scripts (sh) but I'm not very good with this programming language, I didn't understand it very well. I'm in doubt about the bonds_type property of the GPSettings class, in genpoly. I know that genpoly_lt does not check the bond and atom type, but moltemplate.sh does. I'm trying to use types present in force field, like "084_084" from oplsaa, but moltemplate says the type doesn't have the necessary parameters. Where can I learn more about the valid types of bonds_type and bonds_atoms?

Hi Andrew. I've been looking at scripts (sh) but I'm not very good with this programming language, I didn't understand it very well. I'm in doubt about the bonds_type property of the GPSettings class, in genpoly. I know that genpoly_lt does not check the bond and atom type, but moltemplate.sh does.

Hi Reginaldo
I think I understand what might be causing your confusion.  In all of the moltemplate examples which use OPLSAA, the user is not required to specify the type of bond connecting pairs of atoms.  The user only has to specify which atoms are bonded together (placing them in the write("Data Bonds List") section).  Then moltemplate will lookup the appropriate @bond type using the rules in the "Data Bonds By Type" section of the "oplsaa.lt" file.  Unfortunately "genpoly_lt.py" is currently not smart enough to do this.  When using "genpoly_lt.py", the user must explicitly specify the @bond type for bonds between atoms in different monomers (such as "084_084").
It's important that you bring this to my attention, because I had forgotten this issue.  I have only used "genpoly_lt.py" with coarse-grained polymers (which don't use OPLSAA), so I did not think about how confusing this must be.
But it sounds like you are attempting to do the correct thing:  You are manually specifying the bond types ("084_084").  That's good.
I don't know why moltemplate.sh is complaining...

I'm trying to use types present in force field, like "084_084" from oplsaa, but moltemplate says the type doesn't have the necessary parameters. Where can I learn more about the valid types of bonds_type and bonds_atoms?

  (It sounds like "genpoly_lt.py" runs without error messages.)  Is this correct?
If you haven't already, can you send me your LT files (email is okay)?  Please also explain how you use genpoly_lt.py to create your LT files.

Hi Andrew, thanks for the feedback. I made a script to automate what I've been doing here, you can easily reproduce it and then check for the error. I sent you by email.
 Syntax error: Missing bond coeff.

  No coeffs for the "@/bond:_sub1/084_084" bond type have been
defined, but a reference to that bond type was discovered
near "HDPE_GP8553_CADS8.LT", line 42799.   Check this file and also check
your "bond_coeff" commands or your "Data Bond Coeffs" section.
---------------------------------------------------------------------
(To continue anyway, run moltemplate using the "-nocheck" argument.)

To leave it documented for other users I will be more specific.
I'm using the following groups:
import "oplsaa.lt"
import "loplsaa.lt"

CH2 inherits OPLSAA {

  write("Data Atoms") {
    $atom:C  $mol:... @atom:81L    0.0  0.000000     0.000000      0.000000
    $atom:H1 $mol:... @atom:85LCH2 0.0  0.000000     0.631044      0.892431
    $atom:H2 $mol:... @atom:85LCH2 0.0  0.000000     0.631044     -0.892431
  }

  write('Data Bond List') {
    $bond:CH1 $atom:C $atom:H1
    $bond:CH2 $atom:C $atom:H2
  }

import "oplsaa.lt"
import "loplsaa.lt"

CH3 inherits OPLSAA {

  write("Data Atoms") {
    $atom:C  $mol:... @atom:80L    0.0  0.000000     0.000000      0.000000
    $atom:H1 $mol:... @atom:85LCH3 0.0  0.000000     0.631044      0.892431
    $atom:H2 $mol:... @atom:85LCH3 0.0  0.000000     0.631044     -0.892431
    $atom:H3 $mol:... @atom:85LCH3 0.0 -0.892431    -0.631044      0.000000
  }

  write('Data Bond List') {
    $bond:CH1 $atom:C $atom:H1
    $bond:CH2 $atom:C $atom:H2
    $bond:CH3 $atom:C $atom:H3
  }

A function to automate the generation of cuts and sequences.

def sequence(mon_lst, pol_deg, dims_lattice, modo="file", random= False):
    try:
        num_sitios = dims_lattice[0] * dims_lattice[1] * dims_lattice[2]
        num_cadeias = num_sitios // pol_deg
        pol_cap, pol_body = mon_lst[0], mon_lst[1]
    except:
        return ValueError

    with open("cuts.txt", 'w') as cuts:
        line = 0
        with open("sequence.txt", 'w') as seq:
            for i in range(num_cadeias):
                seq.write(pol_cap + "\n")
                line+=1
                for j in range(pol_deg-2):
                    seq.write(pol_body + "\n")
                    line+=1
                seq.write(pol_cap + ".rot(180,0,0,1)" + "\n")
                line+=1
                if i != (num_cadeias - 1):
                    cuts.write(f"{line}\n")
                else:
                    pass

def main():
    mon_lst = sys.argv[1:3]
    sys.argv[3:7] = [int(i) for i in sys.argv[3:7]]
    pol_deg, dims_lattice =  sys.argv[3], sys.argv[4:7]
    try:
        sequence(mon_lst, pol_deg, dims_lattice)
    except ValueError:
        print("**** ERRO ****\n", "Parâmetros inválidos!")
        exit()
    print("Sequencias de monômeros e de cortes geradas com sucesso!")
if __name__ == "__main__":
    main()

And a routine for automating the polyethylene generation procedure.
from PolymerCpp.helpers import getCppWLC
import sequence_generator as sqg
import numpy as np
import sys
from new_genpoly_lt import GenPoly
import subprocess
import os

def main():
    """
        O programa recebe o grau de polimerização e o número de cadeias a serem
        simuladas, diretamente por linha de comando.

        The script receives the degree of polymerization and the number of chains to be
        simulated, directly from the command line.
    """

    polim_degree, num_chains = int(sys.argv[1]),int( sys.argv[2])
    pers_length = 2
    ver_pers_len = input(
        f"Using persistence length equal to  {pers_length}. " +
        "Do you want to modify this parameter? [y/n]: "
    )
    if ver_pers_len in ['y', 'Y']:
        pers_length = int(
            input(
                "Enter a new persistence length" +
                "int: "
            )
        )
    chains = getCppWLC(polim_degree *num_chains, pers_length)

    sqg.sequence(
        ["CH3","CH2"],
        polim_degree,
        [polim_degree *num_chains,1,1]
    )

    max_x, min_x = np.amax(chains[:,0]), np.amin(chains[:,0])
    max_y, min_y = np.amax(chains[:,1]), np.amin(chains[:,1])
    max_z, min_z = np.amax(chains[:,2]), np.amin(chains[:,2])
    gp = GenPoly()
    gp.coords_multi = list(np.split(chains[:-1],num_chains))

    gp.ParseArgs(
        [
            '-polymer-name', 'HDPE2911',
		    '-monomer-name', 'alcano',
            '-sequence', 'sequence.txt',
		    '-header', 'import oplsaa.lt',
            '-header', 'import loplsaa.lt',
            '-header', 'import ch2group.lt',
		    '-header', 'import ch3group.lt',
		    '-cuts', 'cuts.txt',
            '-bond', '??', '??', '??',
        ]
    )
    with open(
        f"HDPE_GP{polim_degree}_CADS{num_chains}.LT",
        'w'
    ) as molt_file:
        gp.WriteLTFile(molt_file)
        molt_file.write(
            'write_once("Data Boundary") {\n' +\
            f"    {1.1 * min_x}  {1.1 * max_x}  xlo xhi\n" +\
            f"    {1.1 * min_y}  {1.1 * max_y}  ylo yhi\n" +\
            f"    {1.1 * min_z}  {1.1 * max_z}  zlo zhi\n"
            "}"
        )
    return True
if __name__ == "__main__":
    main()
    print("Input successfully generated!")

PolymerCPP library can be installed with pip install PolymerCpp.
Thanks.

I apologize for taking so much time to reply.  I should have warned you that I am very busy.  But I have your files and I will work on it by the week end.

Hi Reginaldo
My apologies for taking so long to reply.  My career has changed and I cannot spend as much time on moltemplate as I did in the past.  But I would like to solve your problem so that other people do not struggle as you did.  Unfortunately, I cannot get your code to run.  Perhaps I am running it the wrong way.
When I run your code this way:
./my_auto_pol_gen.py

...I get the following error:
Traceback (most recent call last):
  File "./my_auto_pol_gen.py", line 3, in <module>
    from PolymerCpp.helpers import getCppWLC
  File<EMAIL_ADDRESS>line 9, in <module>
    import PolymerCppCore
ImportError<EMAIL_ADDRESS>undefined symbol: _ZSt28__throw_bad_array_new_lengthv

Am I using your code the correct way?
If it matters, I installed the dependencies using:
pip install PolymerCpp
pip install moltemplate

If too much time has gone by and you are no longer interested in this issue, I will not be offended.

Hi, @bond tags me in the thread.
On Sun, Nov 7, 2021, 00:26 Andrew Jewett @.***> wrote:

Hi Andrew. I've been looking at scripts (sh) but I'm not very good with
this programming language, I didn't understand it very well. I'm in doubt
about the bonds_type property of the GPSettings class, in genpoly. I know
that genpoly_lt does not check the bond and atom type, but moltemplate.sh
does.
Hi Reginaldo
I think I understand what might be causing your confusion. In all of the
moltemplate examples which use OPLSAA, the user is not required to specify
the type of bond connecting pairs of atoms. The user only has to
specify which atoms are bonded together (placing them in the write("Data
Bonds List") section). Then moltemplate will lookup the appropriate @bond
https://github.com/bond type using the rules in the "Data Bonds By
Type" section of the "oplsaa.lt" file. Unfortunately "genpoly_lt.py" is
currently not smart enough to do this. When using "genpoly_lt.py", the user
must explicitly specify the @bond https://github.com/bond type for
bonds between atoms in different monomers (such as "084_084").
It's important that you bring this to my attention, because I had
forgotten this issue. I have only used "genpoly_lt.py" with
coarse-grained polymers (which don't use OPLSAA), so I did not think
about how confusing this must be.
But it sounds like you are attempting to do the correct thing: You are
manually specifying the bond types ("084_084"). That's good.
I don't know why moltemplate.sh is complaining...
I'm trying to use types present in force field, like "084_084" from
oplsaa, but moltemplate says the type doesn't have the necessary
parameters. Where can I learn more about the valid types of bonds_type
and bonds_atoms?
 (It sounds like "genpoly_lt.py"
runs without error messages.) Is this correct?
If you haven't already, can you send me your LT files (email is okay)?
Please also explain how you use genpoly_lt.py to create your LT files.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jewettaij/moltemplate/issues/62#issuecomment-962523318,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAABNMYOYQT4YTBNM6K4DPDUKXBSNANCNFSM5HO6PAQA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Hi, @bond tags me in the thread.
[…]

Lucky you.  You can learn all about how to simulate polymers in LAMMPS by reading this thread. (My apologies for that.)
Cheers.
-A

Hi Reginaldo.
I gave up trying to get your code to work.  However perhaps I can solve your problem anyway.  I just posted commit e37b1f5, which allows the user to omit the bond's type.  Here is the documentation for this feature:
    -bond a1 a2
             Add a bond between successive monomers between atoms named a1, a2.
	     Here we omit the bond's type.  Omitting the bond's type is allowed
             if you are using a force field (like OPLSAA), which looks up bond
             types according to rules defined in the force field.

You can also use the original syntax, where the bond type (eg "084_084") is explicitly specified by the user.
     -bond btype a1 a2

I realize you have probably moved on to solve your problem in some other way, and I apologize for that.  But I appreciate you posting your question because I suspect other people who use "genpoly_lt.py" will run into this problem too (since most of them also use force fields too).  This will hopefully help them.
Thanks.
-A
P.S.  If I don't hear from you in a week, I will close this issue.

Hello, @jewettaij. I'm coming back from my vocations today, I'll check it tomorrow. Ok? Thanks for returning!

Hi Reginaldo.  I think I'm going to close this issue.  Feel free to open it again later if you have time to revisit the problem.  I hope things are going well.

Hi @jewettaij , thank you very much for the effort to help with this issue. I've had several health problems in the family in the last few months, so I've only now taken up the issue again. I'm testing everything now.

I am sorry to hear that.  I've been living with some sick family members too.  This kind of problem can consume you.  Take care of yourself as well.  I'll be here to look at this issue whenever you are ready.

I am sorry to hear that.  I've been living with some sick family members too.  This kind of problem can consume you.  Take care.  I'll be here to look at this issue whenever you are ready.

Perfect!  Genpoly is working exactly as expected. Thank you so much.

I am sorry to hear that.  I've been living with some sick family members too.  This kind of problem can consume you.  Take care.  I'll be here to look at this issue whenever you are ready.

Perfect! Genpoly is working exactly as expected. Thank you so much.

I'm relieved.  Thanks for getting back to me, Reginaldo.
Good health for you and your family!
Andrew


Match the formatting for git gud skills and git gud levels

Here is the current output. git gud levels should look like git gud skills
$ git gud skills
Currently on skill: "basics"

Skill 1 - "basics" : 4 levels
    Level  1 : committing
    Level  2 : branching
    Level  3 : merging
    Level  4 : rebasing
Skill 2 - "rampup" : 4 levels
    Level  1 : detaching
    Level  2 : relrefs1
    Level  3 : relrefs2
    Level  4 : reversing
Skill 3 - "extras" : 1 level
    Level  1 : octopus

Load a level with `git gud load`
$ git gud levels
Levels in the current skill "basics" :

1: committing
2: branching
3: merging
4: rebasing

Since nobody else seems to be tackling this, I'll take this on.


[RFC] Provide matching sequence on XML\Reader

RFC

Q
A

New Feature
yes

RFC
yes

BC Break
yes

Summary
This would be a BC break!
Currently, the reader yields only the XML strings that match your criteria.
It could make sense to wrap that string-result with some kind of MatchingNode class.
That way, it is possible to detect some more information about the match.
For example:
final class MatchingNode
{
    public function __construct(
        public readonly string $xml,
        public readonly NodeSequence $sequence,
    ){
    }
}

So given this reader:
$reader = Reader::fromXmlString(<<<'EOXML'
    <root>
        <products>
            <item>Product 1</item>
            <item>Product 2</item>
        </products>
        <categories>
            <item>Category 1</item>
            <item>Category 2</item>
        </categories>
    </root>
EOXML
);

You could match on both products and categories items all at once, and make it possible to segment them again in 1 go.
$matches = $reader->provide(Matcher\element_name('item');

foreach ($matches as $match) {
    $xml = $match->xml;
    $isProducts = $match->sequence->at(1)?->name === 'products';

}

I think providing the outer “NodeSequence” in each iteration is great, then I assume they’ll be a method like “->getXml()” or something to get what you have currently?

Yes, the yielded match object would contain both the XML string (what we have right now) and the sequence of the match.
It's not the outer sequence (as-in parents only), but in the example above it would be similar to either of those:

root > products > item
root > categories > item

depending on what it mached on.
(just using a breadcrumbs-like notation here, it are actually DTOs which contain more information about the element, it's parent tree and attributes)


overflow-x hidden

@wwwjsw Is this fixing any issue? Does the tooltip content overflow in ay situation?

Firefox 49.0.2
openSUSE-42.1

btw my bad, I was thinking this is an gh-pages branch


Replace fragments with paragraph where possible

Many places in the code are currently returning fragments as child components.
In some cases, it may be better to instead return a paragraph component, as it would allow for more control over styling. In these cases, the paragraph would be a simple wrapper around a single fragment, but might also make the resulting HTML a little nicer.

Fixed by https://github.com/mjbozo/mdx/commit/3bc83d3062cc42b64840a9d5d19c40d319a9648b


Tab highlight not recalculated/repositioned when tab is shown/hidden

Ionic version:  (check one with "x")
[ ] 1.x
[X] 2.x
I'm submitting a ...  (check one with "x")
[X] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:
The tab button can be shown and hidden by its property "show". When tab highlight is enabled for tabs and one tab is hidden (set show=false), the tab highlight is not recalculated/repositioned until window resize event is triggered.
Expected behavior:
When tab is hidden, tab highlight is recalculated and repositioned.
Steps to reproduce:
https://github.com/lleevvyy/ionic-tab-highlight-issue
Other information:

Ionic info: (run ionic info from a terminal/cmd prompt and paste output below):
Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.5
Ionic CLI Version: 2.1.18
Ionic App Lib Version: 2.1.9
Ionic App Scripts Version: 1.0.0
ios-deploy version: Not installed
ios-sim version: 5.0.13
OS: macOS Sierra
Node Version: v7.3.0
Xcode version: Xcode 8.2.1 Build version 8C1002

Thanks for the heads up, we'll take a look


WRQ-19156: Update .travis.yml to apply the latest node version

Checklist

[x] I have read and understand the contribution guide
[ ] A CHANGELOG entry is included
[ ] At least one test case is included for this feature or bug fix
[x] Documentation was added or is not needed
[ ] This is an API breaking change

Issue Resolved / Feature Added
In https://github.com/enactjs/moonstone/pull/185,
We changed node version in .travis.yml to 21 to avoid node 22 error temporarily.
We need to revert it to the latest version.
Resolution
I reverted the node version to the latest.
Additional Considerations
Links
WRQ-19156
Comments
Enact-DCO-1.0-Signed-off-by: Jiye Kim<EMAIL_ADDRESS>

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


OkHttp reply me not in UTF8 but in Percent Encoding

im calling a GET Api (API of ModernMTT) with OkHttp (Last version), my problem is that the reply from the server is not in UTF-8 but in Percent Encoding, and i dont understand why,
i try to set the Content-Type to UTF-8 without result.
I tried also to Decode without result.
URLDecoder.decode(stringDecoded, StandardCharsets.UTF_8)
From CURL and Postman the server reply good.
So the problem is on OkHttp.
My code
    public static String translate(String string) throws IOException {
            OkHttpClient client = new OkHttpClient().newBuilder().addInterceptor(new FixEncodingInterceptor()).build();
            Request request = new Request.Builder()
                    .url("https://api.modernmt.eu/translate?source=" + sourceLanguage + "&target=" + targetLanguage + "&q=" + string)
                    .method("GET", null)
                    .addHeader("MMT-ApiKey", apiKey)
                    .build();
            try (Response response = client.newCall(request).execute()) {
                if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
                String stringTranslated= Objects.requireNonNull(response.body()).string();
                ResponseMTT responseMTT = new Gson().fromJson(stringTranslated, ResponseMTT.class);
                StandardCharsets.UTF_8));
                return responseMTT.getData().getTranslation();
            }
        }

The response.body.string() return this format:
`%22Sconto%20del%2020%:%20%3CPAColor0xFF66CC33%3EUtilities%20%E2%86%92%20Capacity%20of%20load%3CPAOldColor%3E.`

I fixed doing:
HttpUrl httpurl = new HttpUrl.Builder()
                .scheme("https")
                .host("api.modernmt.eu")
                .addPathSegment("translate")
                .addQueryParameter("source", sourceLanguage)
                .addQueryParameter("target", targetLanguage)
                .addQueryParameter("q",string)
                .build();

and after in request .url(httpurl)
I dont understand the difference, but creating the object HttpUrl now the answer from server is in correct way.

This is a better question for stackoverflow, this isn't a reproducible bug given the request requires a auth token.


Can flannel connect to more than one ethernet interface on the same server?

We have two ethernet interfaces (eth0, eth1) on one host server which are connected to two different networks. The idea is to connect both networks to the docker containers over flannel.
Does flannel support connecting to more than one ethernet interface using multiple --iface options?
The documentation doesn't mention about multiple --iface options. Is there any way to connect to more than one interface simultaneously?
Edit: Added a diagram which explains the required feature clearly.
Currently Flannel runs as shown in Figure 1.
We are looking for a way to run flanneld on top of two ethernet interfaces as shown in Figure 2. The traffic from two different ethernet interfaces should be listened by flanneld instead of one ethernet interface currently.

Is there a reason you don't just bond the two interfaces? I am confused why you want to have two interfaces in use.

Afaik, bonding is used when you need redundant links, fault tolerance or load balancing networks. Bonding allows you to aggregate multiple ports into a single group, effectively combining the bandwidth into a single connection.
In our scenario, the two ethernet interfaces (eth0 and eth1) are connected to two different networks and both interfaces have different IP address subnets.
Not sure if we could use bonding in our scenario.

Can we get answer to this? scenario looks valid to me..

Hello.
We have the same issue.
We have three dedicated servers in one datacenter (DC1). This servers have  public interface eth0 with public IP. One server is kubernetes master+worker, another two - workers. All worked fine.
But we have a issue to add workers from another DC with private subnet <IP_ADDRESS>/16.
I've openvpn tunnel from servers (in DC1) to DC2.
So all servers in DC1 have two interfaces (eth0 - public IP, and tun0 - IP in private subnet)
All nodes see each other, traffic for nodes in private DC routed to the tun0 and another traffic routed to eth0.
Unfortunately, in this case, PODs started on servers in the DC1 cannot see the PODs on servers in the DC2 because traffic for DC1 should be passed to another interface (tun0).
I can change --iface to the tun0, and reconfigure all nodes, to communicate through private IPS, but then all the traffic will goes through the VPN tunnel, even the between nodes in the same DC.
I think it is better use the routing table and not to send everything through one interface.
Routing table contains everything you need for this:
default         x.x.x.x   <IP_ADDRESS>         UG    0      0        0 eth0
<IP_ADDRESS>       *               <IP_ADDRESS>     U     0      0        0 flannel0
<IP_ADDRESS>      *               <IP_ADDRESS>   U     0      0        0 docker0
<IP_ADDRESS>       <IP_ADDRESS>      <IP_ADDRESS>     UG    0      0        0 tun0

we have also 2 interfaces on each node in a 3 node cluster
we want the "real" traffic through eth0 and the "Cluster interconnect" traffic through eth1

@philips : After your question, added more information in the comments sections. Also updated the issue with a diagram, which should explain the issue more clearly. Hope this helps.

Did anyone solve this issue or know the configuration needed to do so? I also have a private and public network and would like to do the same.
Thanks,

@vijaykumark  hi，have you slove it ?

There is no response @philips or from flannel team since last year.

I'm still not sure I understand what's being asked for here. The way the diagram is written above implies that the UDP backend is being used, but I think it would be better to just center the discussion around the vxlan backend. This means that the flanneld isn't in the packet path.
VXLAN doesn't bind to any of the physical interfaces, the packets are routed according to the routing set up on the host. So I don't think there should be an issue with multiple interfaces, connected to different subnets. The inter-host traffic will just which ever interface it needs to get to the target host.

@tomdee @philips
I setup a cluster routing to 2 nics yesterday using the vxlan backend as described by @tomdee. I believe this issue can be closed?

@tomdee @philips @joshrosso
We are not using vxlan backend and we are not using UDP.
We use two physical ethernet/fiber networks attached over two ethernet interfaces to the same server. All the networking is managed externally by different switches.
So, for the server will not know how the networks are managed once the traffic goes out of the ethernet interfaces.
Is it possible to attach flanneld to such a network? If yes, do you have documentation which I can refer to?

@vijaykumark Sorry, flannel vxlan only supports binding to single ethernet device. I'm still not sure what flannel backend you're using - can you share that information?

@tomdee  We are running flannel on baremetal servers (CentOS 7) which have two ethernet ports connecting to two different physical ethernet networks. There is no other SDN solution involved other than flannel.

That is very unfortunate @warmchang :/

Closing the issue as it's stale.


Windows wheel performance of interpolate.griddata

When running scipy.interpolate.griddata using the official Windows wheels from pip I noticed a slowdown by a factor 7-8 as compared to other builds (e.g, Anaconda or conda-forge). Also, when running the same code on Linux and comparing pip wheels <> Anaconda there is some slowdown, but only within a factor of 2.
As far as I know Anaconda uses Intel MKL whereas the pip wheels ship OpenBLAS (probably, the current status was hard to figure out). This could explain some of the runtime difference but it should usually not be this large. Also, I was unable to track down if and how MKL/OpenBLAS is involved in griddata, which relies on spatial.Delaunay, which relies primarily on Cython code and the qhull library.
Any insight into this issue is appreciated. Even if it boils down to something scipy cannot fix. I am genuinely interested.
The example code:
import time
import numpy as np
from scipy.interpolate import griddata

np.random.seed(123)

# test griddata
print("Running griddata(): ", end="")
x, y, z = np.random.randn(3, 10000)
x2, y2 = np.linspace(-1.0, 1.0, 250), np.linspace(-1.0, 1.0, 251)

start = time.perf_counter()
for i in range(100):
    z2 = griddata((x, y), z, (x2[None, :], y2[:, None]))
stop = time.perf_counter()
print("%.3f seconds." % (stop - start))

This produces on my Windows machine:
Running griddata(): 42.665 seconds.  # v1.5.4 on python 3.9.0 official wheel from pypy
Running griddata(): 7.335 seconds.   # v1.5.2 on python 3.8.5 from Anaconda

On a (different) Linux machine:
Running griddata(): 8.853 seconds.  # v1.5.4 on python 3.9.0 official wheel from pypy
Running griddata(): 5.515 seconds.  # v1.5.2 on python 3.8.5 from Anaconda

Interesting, I have no idea. Had not expected a large difference based on Qhull build options.

@ev-br In my development conda environment (SciPy main, OpenBLAS), this took 16.626 seconds, but in my base environment (SciPy 1.7.1, MKL), it took 5.669 seconds. Should I create a new environment, install everything with pip, and try that?

@mdhaber yes indeed, it would be instructive to compare the performance of the OP test case with conda-forge and the official wheel. With an as recent scipy as realistic, 1.9.2 would be best if possible.

I think we can close this unless somebody feels like redoing the perf comparison with the current wheel builds. The OP was reported with numpy.distutils builds, and so was Matt's check in 2022. Thanks for the report @ncgeib, thanks for testing @mdhaber !