Formulation of a dual model

Understanding the Primal and Dual Relationship
In linear programming, every LP problem (the primal) has a corresponding dual problem. The dual provides valuable insights into the sensitivity and feasibility of the primal problem. The relationship between the primal and dual is governed by specific rules, which systematically construct the dual from the primal.

Steps to Formulate the Dual Model
1. Write the Primal Problem in Standard Form
Ensure that the primal problem is expressed in a consistent standard form. For visualization, we'll consider the primal problem in the following form:

Primal (Standard Form):
$$
\begin{align*}
\text{Maximize (or Minimize):} \quad & z = c^T x \
\text{Subject to:} \quad & A x (\leq, =, \geq) b \
& x \geq 0
\end{align*}
$$

Where:

$x$ is the vector of primal variables.
$c$ is the vector of coefficients in the objective function.
$A$ is the matrix of coefficients in the constraints.
$b$ is the vector of right-hand side constants.

2. Identify the Dual Variables

For each primal constraint, introduce a dual variable. The number of dual variables equals the number of primal constraints.
Denote the dual variables as $y$.

3. Determine the Dual Objective Function

If the primal is a maximization problem, the dual will be a minimization problem, and vice versa.
The coefficients in the dual objective function are the constants from the right-hand side of the primal constraints ($b$).

4. Formulate the Dual Constraints

The coefficients in the dual constraints are the transpose of the primal constraint matrix ($A^T$).
The right-hand side of the dual constraints comes from the coefficients of the primal objective function ($c$).
The direction of the inequalities in the dual constraints depends on the primal variable constraints and the primal constraint inequalities.

5. Apply Sign Restrictions

The sign restrictions on the dual variables depend on the type of primal constraints:

Primal constraints of the form $\leq$: Dual variables $y \geq 0$.
Primal constraints of the form $\geq$: Dual variables $y \leq 0$.
Primal constraints of the form $=$: Dual variables are unrestricted in sign.

Example of Formulating the Dual
Let's consider a specific primal problem to illustrate the process.
Primal Problem
Maximize:
$z = 3x_1 + 5x_2$
Subject to:
$$
\begin{align*}
2x_1 + 3x_2 & \leq 8 \quad (1) \
x_1 + x_2 & \leq 6 \quad (2) \
x_1, x_2 & \geq 0
\end{align*}
$$
Formulating the Dual Problem
Step 1: Identify Dual Variables

Since there are two primal constraints, introduce two dual variables: $y_1$ and $y_2$.

Step 2: Determine the Dual Objective Function

The primal is a maximization problem, so the dual will be a minimization problem.

The coefficients of the dual objective function are the right-hand side constants from the primal constraints.

Dual Objective Function:
Minimize:
$W = 8y_1 + 6y_2$

Step 3: Formulate the Dual Constraints

The coefficients come from the transpose of the primal constraint coefficients.

Primal constraint coefficients matrix $A$:
$$
A = \begin{bmatrix}
2 & 3 \
1 & 1 \
\end{bmatrix}
$$
Transpose $A^T$:
$$
A^T = \begin{bmatrix}
2 & 1 \
3 & 1 \
\end{bmatrix}
$$

Dual Constraints:

$$
\begin{align*}
2y_1 + y_2 & \geq 3 \quad (a) \
3y_1 + y_2 & \geq 5 \quad (b)
\end{align*}
$$
Step 4: Apply Sign Restrictions

The primal constraints are $\leq$, so the dual variables $y_1, y_2 \geq 0$.

Dual Problem Summary
Minimize:
$W = 8y_1 + 6y_2$
Subject to:
$$
\begin{align*}
2y_1 + y_2 & \geq 3 \quad (a) \
3y_1 + y_2 & \geq 5 \quad (b) \
y_1, y_2 & \geq 0
\end{align*}
$$

Visualization Using the Dual Model
With the dual problem formulated, you can now focus on visualizing the dual variables ($y_1, y_2$) and the dual objective value ($W$). This approach offers a more direct relationship between the variables and the objective function, simplifying your visualization.
1. Plotting the Feasible Region

Axes: Use $y_1$ and $y_2$ as the x and y axes.
Constraints: Plot the dual constraints $(a)$ and $(b)$.

Inequalities $\geq$ define a feasible region that is above or to the right of the constraint lines.

Non-negativity: Since $y_1, y_2 \geq 0$, the feasible region lies in the first quadrant.

2. Representing the Objective Function

The objective function $W = 8y_1 + 6y_2$ is a plane in 3D space.
For visualization, you can represent lines of constant $W$ (iso-cost lines) in the $y_1, y_2$ plane.
The goal is to find the point in the feasible region that minimizes $W$.

3. Finding the Optimal Solution

The optimal solution occurs at the point(s) where the lowest possible iso-cost line touches the feasible region.
This point can be found by identifying the intersection of the constraints that satisfy all conditions.

4. Visualizing Sensitivity

By adjusting the coefficients (e.g., changing the right-hand side values in the primal constraints), you can observe how the feasible region and optimal solution shift.
This dynamic visualization helps in understanding the sensitivity of the solution to changes in the constraints.

Advantages for Visualization
Direct Relationships

Dual variables correspond directly to the primal constraints, making it easier to interpret how changes affect the objective value.

Simplified Feasibility

With typically fewer dual variables (especially if the primal has fewer constraints than variables), the feasible region is often easier to visualize.

Sensitivity Analysis

Changes in dual variables reflect changes in the primal constraints' right-hand sides, providing intuitive insights into resource valuation and constraint impacts.

Without building a dual model, dual variables and reduced costs are computed from the optimal Tableau of the primal model.


Frontend linter fix

Closes #172

@CatoLeanTruetschel Can you take a look at your react-graph-vis.d.ts and FakeDataQueryService.ts?
I will fix SearchResultList.scss in #171


Export for ios

Godot version
4.0, 4.1.1,
System information
Mac OS m1 air, godot 4.0., 4.1.1 stable
Issue description
I have Mac m1 air 13.4.1 , Ventura stable, 16 gb ram, I export for iOS
In version 3.5 everything works.
All 4 and above versions have the same error when exporting .
Unable to export error open icons,
Can't open file from path 'res://new4.2/Images.xcassets/AppIcon.appiconset/Contents.json'.
Can't open file from path 'res://new4.2/Images.xcassets/AppIcon.appiconset/Icon-40.png'.
Can't open file from path 'res://new4.2/Images.xcassets/AppIcon.appiconset/Icon-58.png'.

Does anyone even get to export for an iPhone with Godot 4?
Steps to reproduce

Select export for iOS
select image icon 1024
Export ipa

Minimal reproduction project
https://github.com/kpk-i710/arabic_godot

cc @bruvzg

It seems like you accidentally exported it into a project folder, and errors are caused by Godot trying to load exported iOS files, you should always export to the empty folder outside the main project tree.
Your test project is exporting for iOS without any issues, if a valid App Store Team ID is set in the export settings. You can get it from developer account site - https://developer.apple.com/help/account/manage-your-team/locate-your-team-id, or from the developer certificate ("Organisational Unit" field).

It seems like you accidentally exported it into a project folder, and errors are caused by Godot trying to load exported iOS files, you should always export to the empty folder outside the main project tree.
Your test project is exporting for iOS without any issues, if a valid App Store Team ID is set in the export settings. You can get it from developer account site - https://developer.apple.com/help/account/manage-your-team/locate-your-team-id, or from the developer certificate ("Organisational Unit" field).

Thanks a lot, yes you are right. I didn't look carefully there it was necessary to specify idTeam,
I specified the first and last name, because when I did flutter (dart), the export always requested an account with a first name and last name

It seems like you accidentally exported it into a project folder, and errors are caused by Godot trying to load exported iOS files, you should always export to the empty folder outside the main project tree.

I remember Godot disallowed exporting a project within the project folder for this reason at some point.
Alternatively, could we write a .gdignore file within the exported folder? This approach can only be used with iOS exports though.


Add hikari lightbulb starter

Hey @AceyDoCodes, I am closing this PR as we've restructured how we manage templates. Do you mind creating an issue using the updated instructions in the README and re-submitting the template? :)


Update and re-enable CommitLabelFXTest.testAddFileAndCommit

Master should never have been committed with a failing unit test, but oh well. However, this is preventing me from working on a new build for Linux, because I can't run the build script with a failing unit test. I've commented out this test for now (yikes) so I don't get distracted, but it's critical that we figure out why this test is failing.

Test is working now for me. (Has been for a while as it turns out.) While I was there, I refactored it a little to better reflect TestFX. The code for this test is still a major mess, but it's now running, at least.


Remove unnecessary env variables from README.

Contributing to Twilio

All third-party contributors acknowledge that any contributions they provide will be made under the same open-source license that the open-source project is provided under.

[X] I acknowledge that all my contributions will be made under the project's license.

Closing in favor of #34


test: use T.TempDir to create temporary test directory

Change Description
A testing cleanup.
This pull request replaces ioutil.TempDir with t.TempDir. We can use the T.TempDir function from the testing package to create temporary directory. The directory created by T.TempDir is automatically removed when the test and all its subtests complete.
This saves us at least 2 lines (error check, and cleanup) on every instance, or in some cases adds cleanup that we forgot.
Reference: https://pkg.go.dev/testing#T.TempDir
func TestFoo(t *testing.T) {
	// before
	tmpDir, err := ioutil.TempDir("", "")
	require.NoError(t, err)
	defer os.RemoveAll(tmpDir)

	// now
	tmpDir := t.TempDir()
}

Steps to Test
Changes to existing tests only. The existing testing targets in Makefile and CI cover the changes.
Pull Request Checklist
Testing

[ ] Your PR passes all CI checks.
[ ] Tests covering the positive and negative (error paths) are included.
[ ] Bug fixes contain tests triggering the bug to prevent regressions.

Code Style and Documentation

[x] The change obeys the Code Documentation and Commenting guidelines, and lines wrap at 80.
[x] Commits follow the Ideal Git Commit Structure.
[x] Any new logging statements use an appropriate subsystem and logging level.
[x]  There is a change description in the release notes, or [skip ci] in the commit message for small changes.

📝 Please see our  Contribution Guidelines for further guidance.

Rebased onto master and resolved conflicts.

Rebased onto master.


NatRule: missing dynamic destination support

Is your feature request related to a problem?
Does not look like NatRule supports the 'Dynamic IP (with session distribution)' translation type.  This is needed for https://github.com/PaloAltoNetworks/pan-os-ansible/issues/146.

It's there, just not documented:  #314

Fixed by #314


Added optional step to connect to ExOn

https://github.com/MicrosoftDocs/office-docs-powershell/issues/3839
@chrisda Please Review and if you agree, merge. Thanks

Docs Build status updates of commit ec5e0a5:
:clock10: Full build: the average full build time is 11 min(s) 53 sec(s), this is based on the last 860 build(s) for this repository.

Docs Build status updates of commit ec5e0a5:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/docs-conceptual/exchange-online/connect-to-exchange-online-powershell/mfa-connect-to-exchange-online-powershell.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/docs-conceptual/office-365-scc/connect-to-scc-powershell/mfa-connect-to-scc-powershell.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 2652aab:
:clock10: Full build: the average full build time is 11 min(s) 52 sec(s), this is based on the last 879 build(s) for this repository.

Docs Build status updates of commit 2652aab:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/docs-conceptual/exchange-online/connect-to-exchange-online-powershell/mfa-connect-to-exchange-online-powershell.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/docs-conceptual/office-365-scc/connect-to-scc-powershell/mfa-connect-to-scc-powershell.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Occasional 502 Bad Gateway when sniffing nodes

We use opensearch with springboot 3 application and after upgrading to springboot 3 I see a lot of noise in our Rollbar and Datadog from opensearch component:

org.opensearch.client.ResponseException: method [GET], host [https://vpc-search-api-********.eu-central-1.es.amazonaws.com], URI [/_nodes/http?timeout=1000ms], status line [HTTP/1.1 502 Bad Gateway]

<title>502 Bad Gateway</title>

502 Bad Gateway

	at org.opensearch.client.RestClient.convertResponse(RestClient.java:375)
	at org.opensearch.client.RestClient.performRequest(RestClient.java:345)
	at org.opensearch.client.RestClient.performRequest(RestClient.java:320)
	at org.opensearch.client.sniff.OpenSearchNodesSniffer.sniff(OpenSearchNodesSniffer.java:121)
	at org.opensearch.client.sniff.Sniffer.sniff(Sniffer.java:223)
	at org.opensearch.client.sniff.Sniffer$Task.run(Sniffer.java:154)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

Most errors don't have any additional info:
org.apache.http.ConnectionClosedException: Connection is closed
	at org.opensearch.client.RestClient.extractAndWrapCause(RestClient.java:941)
	at org.opensearch.client.RestClient.performRequest(RestClient.java:332)
	at org.opensearch.client.RestClient.performRequest(RestClient.java:320)
	at org.opensearch.client.sniff.OpenSearchNodesSniffer.sniff(OpenSearchNodesSniffer.java:121)
	at org.opensearch.client.sniff.Sniffer.sniff(Sniffer.java:223)
	at org.opensearch.client.sniff.Sniffer$Task.run(Sniffer.java:154)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: org.apache.http.ConnectionClosedException: Connection is closed
	at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.endOfInput(HttpAsyncRequestExecutor.java:356)
	at org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:261)
	at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:87)
	at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:40)
	at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:121)
	at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162)
	at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337)
	at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315)
	at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276)
	at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
	at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:591)
	... 1 more

The weird part is that about half of these requests succeed according to Datadog, and for some time after service restart there are no errors at all, but they start occurring more and more often the longer service is up.
Our cluster is 1 to 2 nodes depending on environment and this error is observed in every environment.
Dependency is implementation("org.opensearch.client:spring-data-opensearch-starter:1.2.0")
Cluster is currently on Elasticsearch 7.10

this might be related to https://github.com/opensearch-project/spring-data-opensearch/issues/136 issue.

this might be related to https://github.com/opensearch-project/spring-data-opensearch/issues/136 issue.

Thanks, it worked


Fix recipe book settings filter

see https://minecraft.wiki/w/Minecraft_Wiki:Projects/wiki.vg_merge/Protocol#Recipe_Book_Settings

tested, works


Feature request: set default machine name arg

This makes sense coming from boot2docker where we only work with a single vm instance and thus only do boot2docker ip, boot2docker ssh, etc
Maybe it can be the static default machine that the installer creates when migrating from boot2docker?
Or perhaps a command-line docker-machine set-default <name>?
Or maybe a new env var $MACHINE_DEFAULT_NAME
Let me know your thoughts. Thanks!

It actually already has a concept of the active Docker vm based on which one you've exported env variables for.

We used to do this but it proved a lot of work and potential problems as a feature of Machine is multiple machine management.  We removed it for those reasons.  Thanks for the feedback!

I see. Thanks for the info!
On Sat, 15 Aug 2015 3:26 am Evan Hazlett<EMAIL_ADDRESS>wrote:

We used to do this but it proved a lot of work and potential problems as a
feature of Machine is multiple machine management. We removed it for those
reasons. Thanks for the feedback!
—
Reply to this email directly or view it on GitHub
https://github.com/docker/machine/issues/1694#issuecomment-131214640.

@ehazlett would you be able to go into more detail on why you closed this?
It's really redundant to have docker-machine error out on these commands when you actually only have one machine – it's not particularly good UX at the moment IMO.
It's the same as if ls required an argument instead of defaulting to the current directory (and insert any other CLI command in its place).
Whether it can just figure out the name automatically, or it just reads it from a config you provide that provides a default machine name, it would certainly be much more usable with this feature and save a lot of keystrokes (and users forgetting that they have to provide a name, and trying to remember what that name was, etc)

@mhart and others interested I filed an issue about a potential fix here: https://github.com/docker/machine/issues/1783

FWIW, I agree that reasonable defaults always make for better UX, but for the lack of such defaults in the current version of the Docker Machine CLI, this is what I did to maintain my relative sanity, in case it's helpful to anybody:
alias diip='docker-machine ip `docker-machine active`'
alias dissh='docker-machine ssh `docker-machine active`'

thanks @inadarei!

I've create this bash script called "dm" that injects the default docker machine name into commands that are supported by the script.
The default machine name is taken from DOCKER_MACHINE_NAME env variable.
Usage example:
dm ssh

This will run docker-machine ssh $DOCKER_MACHINE_NAME
The supported commands are config, env, inspect, ip, kill, provision, regenerate-certs, restart, scp, ssh, start, status, stop and upgrade
The script will not inject the default machine name if a supported command is not used as the first arguments or if there's a use of an existing machine name in the command.
This means that running dm ssh dev, will run docker-machine ssh dev as usual without the usage of DOCKER_MACHINE_NAME env variable.
You can add --explain  as last parameter to print the actual command that the script runs.


Convert Repository types to use interior mutability

This changes Repository to use interior mutability in order to store state. At the moment, EphemeralRepository is the only repository type that stores state. By switching over to internally using Arc<Mutex<...>>> to wrap the state, it allows repositories to be used concurrently across threads. This trait will be especially important as we transition over to using asynchronous io with Hyper 0.11+.
Another approach could be to wrap the repositories in Client with Arc<Mutex<...>>, but I'm worried that might lead to deadlocks with asynchronous use of the repositories.

I'm not sure if we can really recover from PoisonError in this case, since we're wrapping a plain old HashMap, which could get in a bad state if it was partially modified before a panic happened. If we switched over to a concurrent map, then it'd probably be robust, but I'm not familiar with any of the available libraries.
And sure, I can add some notes. Unfortunately though, in my hyper branch it looks like we're going to have to throw a bunch more things in Arcs, which means more possible sources of panics.

Ok, that's what I thought. If there's going to a more panics because of concurrency related errors, then I think it's fine to leave this as is (uncommented unwraps).

Boop for rebase.

And rebased.


Joint limits in URDF do not match xARM 7 hardware limits.

Hi, I hope you are well.
We are using the latest version of the xarm_ros2 repository in the Humble tree.
I am running into some issues with planning new trajectories which involve the robot stretching to another bench behind it. If I control the robot manually or in Ufactory Studio the joints are well within the limits and the motion is possible. However, with ros2 moveit  I get out of bound and joint position errors frequently.
ros2 launch xarm_moveit_config xarm7_moveit_realmove.launch.py robot_ip:=<IP_ADDRESS> add_bio_gripper:=true
And then when requesting a new motion plan I get the following failures:
[move_group-4] [WARN] [1734668167.535488317] [moveit_ros.fix_start_state_bounds]: Joint 'joint4' from the starting state is outside bounds by a significant margin: [3.67145 ] should be in the range [-0.11 ], [3.11018 ] but the error above the ~start_state_max_bounds_error parameter (currently set to 0.100000)
Furthermore, if I start from within boundaries the robot then constrains its motion and successfully executes all trajectories but within the limits of [-0.11] and [3.11018] for joint 4 which does not reflect the real trajectory desired. I get warnings during these executions such as:
[move_group-4] [WARN] [1734655345.289019343] [moveit_kinematic_constraints.kinematic_constraints]: Joint joint4 is constrained to be above the maximum bounds. Assuming maximum bounds instead.
Looking in the URDF files within the /src directory after colcon build I can see:

dev_ws/src/xarm_ros2/xarm_description/urdf/xarm7/xarm7.ros2_control.xacro

Which contains the tag:
  <xacro:macro name="xarm7_ros2_control" params="prefix
    velocity_control:='false'
    ros2_control_plugin:='uf_robot_hardware/UFRobotSystemHardware'
    hw_ns:='xarm' add_gripper:='false' add_bio_gripper:='false'
    robot_ip:='' report_type:='normal' baud_checkset:='true' default_gripper_baud:=2000000
    joint1_lower_limit:=${-2.0*pi}  joint1_upper_limit:=${2.0*pi}
    joint2_lower_limit:=${-2.059}  joint2_upper_limit:=${2.0944}
    joint3_lower_limit:=${-2.0*pi}  joint3_upper_limit:=${2.0*pi}
    joint4_lower_limit:=${-0.19198}  joint4_upper_limit:=${3.927}
    joint5_lower_limit:=${-2.0*pi}  joint5_upper_limit:=${2.0*pi}
    joint6_lower_limit:=${-1.69297}  joint6_upper_limit:=${pi}
    joint7_lower_limit:=${-2.0*pi}  joint7_upper_limit:=${2.0*pi}">
    <ros2_control name="${prefix}${ros2_control_plugin}" type="system">

Where it appears the limits of joint 4 should actually be -0.19 and 3.927 and not -0.11 and 3.11018?
However, there is another URDF file:

dev_ws/src/xarm_ros2/xarm_description/urdf/xarm7/xarm7_robot_macro.xacro

 <!-- xarm7 -->
   <xacro:if value="${is_ros2}">
     <xacro:include filename="$(find xarm_description)/urdf/xarm7/xarm7.ros2_control.xacro" />
   </xacro:if>
   <xacro:include filename="$(find xarm_description)/urdf/xarm7/xarm7.urdf.xacro" />
   <xacro:include filename="$(find xarm_description)/urdf/xarm7/xarm7.transmission.xacro" />
   <xacro:include filename="$(find xarm_description)/urdf/xarm7/xarm7.gazebo.xacro" />

   <xacro:if value="${limited}">
     <xacro:if value="${is_ros2}">
       <xacro:xarm7_ros2_control prefix="${prefix}"
         velocity_control="${velocity_control}"
         ros2_control_plugin="${ros2_control_plugin}"
         hw_ns="${hw_ns}" add_gripper="${add_gripper}" add_bio_gripper="${add_bio_gripper}"
         robot_ip="${robot_ip}" report_type="${report_type}"
         baud_checkset="${baud_checkset}" default_gripper_baud="${default_gripper_baud}"
         joint1_lower_limit="${-pi*0.99}" joint1_upper_limit="${pi*0.99}"
         joint2_lower_limit="${-2.18}" joint2_upper_limit="${2.18}"
         joint3_lower_limit="${-pi*0.99}" joint3_upper_limit="${pi*0.99}"
         joint4_lower_limit="${-0.11}" joint4_upper_limit="${pi*0.99}"
         joint5_lower_limit="${-pi*0.99}" joint5_upper_limit="${pi*0.99}"
         joint6_lower_limit="${-1.75}" joint6_upper_limit="${pi*0.99}"
         joint7_lower_limit="${-pi*0.99}" joint7_upper_limit="${pi*0.99}"/>
     </xacro:if>
     <xacro:xarm7_urdf prefix="${prefix}"
       joint1_lower_limit="${-pi*0.99}" joint1_upper_limit="${pi*0.99}"
       joint2_lower_limit="${-2.18}" joint2_upper_limit="${2.18}"
       joint3_lower_limit="${-pi*0.99}" joint3_upper_limit="${pi*0.99}"
       joint4_lower_limit="${-0.11}" joint4_upper_limit="${pi*0.99}"
       joint5_lower_limit="${-pi*0.99}" joint5_upper_limit="${pi*0.99}"
       joint6_lower_limit="${-1.75}" joint6_upper_limit="${pi*0.99}"
       joint7_lower_limit="${-pi*0.99}" joint7_upper_limit="${pi*0.99}"
       model_num="${model_num}"
       inertial_params_filename="${inertial_params_filename}"
       kinematics_params_filename="${kinematics_params_filename}"
       />

Which does seem to set joint 4 limits as pi*0.99 which is ~0.311? I have tried modifying these lines in the urdf and restarting my ros2 but I always get stuck with the joint constraint errors between [-0.11] and [3.11]. We need to be able to use the whole motion of the xARM 7 for our protocols. Could you help me set the limits required for this? Perhaps I am editing the wrong files or I need to make the changes elsewhere and then rebuild?
Thanks in advance!
James.

Hi @J-Burgess, Sorry we did not specify in ros2 doc for this behavior. The max clamp limit of pi*0.99 of the joints will take effect by parameter limited, and it defaults to be true in upper calling launch files for our moveit applications. It was due to the unexpected solutions (not the shortest solution, takes detours) of default IK solver used by Moveit when joint has a limit greater than 180 degrees (or pi in radians). This behavior was observed in our ROS1 development several years ago and we are not sure if this issue has been solved by KDL yet. We can do some more test and set the default to false if this issue no more exists.
Currently if you wish to use full joint range in Moveit, please specify limited:=false in the launch command line. Sorry for the inconvenience.

Hey @penglongxiang thank you for the rapid response and no problem! I actually had some success with modifying the pi*0.99 to simply ${3.297} and then restarting all terminal sessions and re-connecting the robot. The motions are now successful within the new boundaries, I tested up to [3.8] on joint 4.
Thanks for the information on limited:=false. I will keep that in mind if any future issues occur.
Cheers,
James


Added sqaure prop, so thumbnails can be square

Right now thumbnails are a fixed height of 100, so they make look rectangular on some layouts. This PR adds a square prop, so that the thumbnails can have the same height as they do width.
Before and after:

Looks good. Thanks for contribution @iRoachie!

Sure np! Next I might look at upgrading the ListView to a FlatList for better performance. Fantastic library btw. Spent about 3 months looking for something like this that works well. Good job 👏


S3Key changes after every function push

** Which Category is your question related to? **
Function
** Provide additional details e.g. code snippets **
After every amplify push the S3Key of each function that has been changed gets updated which means that when I try to merge it, I have to look through the files and revert the s3Key changes (since I do not want to merge these).
Is there any workaround or some way to get this data into a separate file? I am currently working in a team of two and we have our own branches and environments and a dev branch to which we are constantly merging to.

Duplicate of #1194
Closing this is favor of #1194.


xctool fails Test did not run: the test bundle stopped running or crashed before the test suite started.

Environment: Mac OS El Capitan + Xcode 7.3
xctool --version
0.2.9
xcodebuild -version
Xcode 7.3
Build version 7D175

Tests fail with xctool reporting:
Test did not run: the test bundle stopped running or crashed before the test suite started.

Notes:

Debug output from the executable is noticed
Tests succeed in xcode

have you tried adding some NSLog's to the test in setUp/tearDown and the body to see if it's actually started?

@mmmulani I just did, I'm getting the NSlogs out in triplicate, both setup and teardown:

2016-04-11 06:28:38.069 app[3019:3982936] setting up tests!
2016-04-11 06:28:38.069 app[3019:3982936] Tearing down tests
2016-04-11 06:28:38.069 app[3019:3982936] setting up tests!
2016-04-11 06:28:38.070 app[3019:3982936] Tearing down tests
2016-04-11 06:28:38.070 app[3019:3982936] setting up tests!
2016-04-11 06:28:38.070 app[3019:3982936] Tearing down tests

@mmmulani appears to be a conflict with Quick and Nimble versions 0.9.1 and 3.2.0 respectively on a hunch I ran a pod update and it installed the following:

Installing Nimble 4.0.0 (was 3.2.0)
Installing Quick 0.9.2 (was 0.9.1)

Everything seems to be working now


improve static data structures

Some static data structures, such as resolver map and the validation information could use some better data structures, in particular avoiding runtime computation, trading it for compile-time whenever possible.
https://blog.quarkslab.com/frozen-an-header-only-constexpr-alternative-to-gperf-for-c14-users.html
could be interesting to this project and the generated code.

I realized that the internal::sorted_map and internal::sorted_set should already be convertible to constexpr in C++20. The new standard enabled constexpr versions of std::less, std::sort, std::vector, and std::equal_range. All it should take is declaring the internal::shorter_or_less comparator constexpr and declaring the constructors and other methods on these types as constexpr as well.


docs: update example in readme

Previous example never actually shows IS txs. Switched it to show them and tested against insight.dashevo.org.

@ktechmidas @strophy A trivial change if you can review/merge. There may be a related issue in that I never saw a tx event that had txlock sent. But maybe that is how it's supposed to work :man_shrugging:

@ktechmidas can you merge it too, or does someone else have to do that?


PR: Fix error after changes to Plugins page (Preferences)

See commit message for details
Description of Changes

[ ] Wrote at least one-line docstrings (for any new functions)
[ ] Added unit test(s) covering the changes (if testable)

[ ] Included a screenshot or animation (if affecting the UI, see Licecap)

Affirmation
By submitting this Pull Request or typing my (user)name below,
I affirm the Developer Certificate of Origin
with respect to all commits and content included in this PR,
and understand I am releasing the same under Spyder's MIT (Expat) license.

I certify the above statement is true and correct:
rear1019

There's one small thing missing though: you need to do the same for external plugins as well, which is a some lines below the change you did (specifically in line 89).

Done


Deployment key from Java is +1

When I deploy a workflow model from a Java client, I get an incremented key nr with respect to what is seen in the monitor

The deployment key is the unique identifier of the whole deployment. As a deployment can contain multiple workflows every workflow is assigned another unique key. See the deploymentEvent.getWorkflows() for the list of deployed workflows. These keys are what you see in the monitor. Does this answer your question?

I guess what you're saying is correct, when I run the DeploymentViewer, I get the same keys as in the monitor. The issue is when deploying a workflow from a Java client, I get a different key (exactly the key nr + 1) than listed in the monitor and with the DeploymentViewer. It's a minor issue, but confusing...


Allow pathlib.Path to be passed to all engines

Related to #4309 and in particular: https://github.com/pydata/xarray/issues/4309#issuecomment-747055666
[x] Passes isort . && black . && mypy . && flake8
No user visible change

Once ZarrStore.open_group and NetCDF4DataStore.open accepts pathlib.Path objects we can remove _normalize_path from apiv2.open_dataset. All other backends accept them.
Note that zarr itself doesn't support them, yet. See: https://github.com/zarr-developers/zarr-python/issues/601

LGTM @alexamici !
Could we add a small test / param onto an existing test? Or do you want to handle that as part of the larger PRs?

@max-sixty there's no direct test for the backend Store classes, only indirect tests through open_dataset. For example all other beckends do support pathlib.Path but none is tested.
Once we remove _normalize_path (PR is coming, and we may need a bit of discussion before approval) we will be able to test all backends.
I propose to merge this PR as it is.

Great! Thanks!

Zarr's convenience methods accept Path objects as of 2.9.0: https://zarr.readthedocs.io/en/stable/release.html#enhancements


Request: Constant effect from held keys.

If you are streaming a game, in many cases just a flash when pressing a key is not great for showing inputs. For games where keys are frequently held down, having an effect start when the key is pressed and end when released would be very appreciated.
I have some experience with C# unity coding myself, so if this is not implemented but there is no particular reason it shouldn't be, I may take a shot at adding it myself. I file this anyway in case it's a particularly easy one to add.

@EatThePath
Thank you for request.
The behavior you have pointed has historical reason that, I wanted to avoid unclarity about key up/down flag management reliability.
However the app now seems enough stable, so I will try it in the next version's update.
I will also try to make the avatar's hands are down during key pressed.

As #480 was merged to develop branch, this update will be included in v1.6.0 release.


[Nomination] Space Potato

Who are you nominating?
The one and only Space Potato!
What are you nominating them for?
They have been amazingly helpful debugging when we ran into issues on the Testnet.
Please provide links to their work.
There have been a couple examples of this. I remember that when we had an invalid genesis file for lucina, the potato was working hard to figure out which Gentxs were incorrect. Recently, he has helped with testing the CI setup for the hera testnet.
A recent example from the chat where Potato found a link that was wrong: https://discord.com/channels/816256689078403103/838144901585698837/883136041643560960
He was very helpful with reviewing the CI script:
https://discord.com/channels/816256689078403103/838144901585698837/883213524925558784

CC @spacepotahto

https://github.com/CosmosContracts/testnets/pull/74

More good stuff from our favorite spud: https://github.com/CosmWasm/cw-plus/pull/406

In case contributing to the junochain website counts too: https://github.com/CosmosContracts/website/pull/14

In case contributing to the junochain website counts too: CosmosContracts/website#14

Definitely does. :pray:


Support Swift 4

After checking #59 I couldn't bring the PR to a place were tests worked again. I tried rebasing against this branch but couldn't due to some issues with the Schemes.
Fixes #58

cc: @AYastrebov

Codecov Report

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

@@           Coverage Diff           @@
##           master      #60   +/-   ##
=======================================
  Coverage   90.26%   90.26%
=======================================
  Files           2        2
  Lines         113      113
=======================================
  Hits          102      102
  Misses         11       11

Codecov Report

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

@@           Coverage Diff           @@
##           master      #60   +/-   ##
=======================================
  Coverage   90.26%   90.26%
=======================================
  Files           2        2
  Lines         113      113
=======================================
  Hits          102      102
  Misses         11       11


[DC-3195] Update retract_data_bq.py to handle "sandbox" and "other" datasets

I updated the script and the test accordingly. Let me know if it looks good. Thanks, @nishanthpp93!

Thanks for reviewing, @nishanthpp93! I have attached the exec logs to the JIRA ticket's comment section. The logs looked good!


Implement imports RFC

https://terragrunt.gruntwork.io/docs/rfc/imports/
NOTE: In the RFC, we mention implementing import as a separate block. To expedite development, we recommend implementing it as part of include by enhancing its capability in backwards compatible ways.
Recommended phased implementation (expectation is that each of bullets is a separate PR):

[x] [IMPLEMENTED] Expose the underlying config values under a reference var. E.g., being able to say include.foo.locals.

This would replace read_terragrunt_config, and has the advantage of providing a way to solve #1128 because we have more control over when parsing happens during a block decode, than a function eval.

[x] [(a) IMPLEMENTED ; (b) IMPLEMENTED] Add the ability to configure the way included config merges. Right now include does an automatic shallow merge. In addition to shallow merge, user should have the ability to specify (a) no merge (full replacement for read_terragrunt_config), and (b) deep merge.

[x] [IMPLEMENTED]Add ability to configure the included config to automatically fetch and expose dependencies.

[X] [IMPLEMENTED]Add the ability to have multiple include blocks in one child config.

[ ] Add the ability to include multiple levels. Note that a potential yak shave is that this may break the include related functions, like get_parent_terragrunt_folder and path_relative_to_include. We will need to respecify how these work when multiple levels are included.

I see that this ticket has been marked as high priority and there are only 10 of those in total at the time of this comment so I believe it is one of the next few in the queue but do you have a general timeframe for this being implemented by chance @yorinasub17 ?

high-priority are tickets we'll try to prioritize internally at Gruntwork. We do not have a timeline on them.

First feature in the list is now implemented in https://github.com/gruntwork-io/terragrunt/releases/tag/v0.30.4

Deep merge with cross include dependency reference support is now available: https://github.com/gruntwork-io/terragrunt/releases/tag/v0.31.3

Multiple (single level) include blocks is now supported starting https://github.com/gruntwork-io/terragrunt/releases/tag/v0.32.0
This feature should allow significantly more DRY terragrunt configs even without multiple include levels. Refer to the updated use case documentation for more details.

@yorinasub17 what is the current status on adding the ability to include multiple levels? THX

@chrisurf It needs some more design cycles to think through what it would mean to the functions. That said, with multiple include support addressing a few core use cases of DRY Terragrunt, I don't think we are likely to implement it anytime soon.

@yorinasub17  Any news on nested includes?
We are evaluating Terragrunt to get our Terraform code DRY and when experimenting with different layouts, I always bumped against the restriction of not being able to have more levels of include, which IMO breaks the principle of getting the code DRY quite a bit.

i tend to agree with the above comment. single include level prevents breaking the parent into re-useable include blocks. including those blocks at a child level makes no sense since it would break DRY.
any chance we can get this moving?

Is this still being worked on?

Indeed, due to this limitation it does not seem to be possible to include anything in a root config at all, which is a problem. In fact, if we do
include "root" {
  path = find_in_parent_folders()
}

as recommended in https://terragrunt.gruntwork.io/docs/features/keep-your-terragrunt-architecture-dry/, then there cannot be an include in any of the parent folder configurations anymore.

@GergelyKalmar I recommend naming your root "root.hcl" and then doing
include "root" {
  path = find_in_parent_folders("root.hcl")
}

the default parameter of the find_in_parent_folders function is "terragrunt.hcl" but the name of included files is arbitrary

I'm not sure if that helps, from what I understand the limitation is that only a single level of includes is allowed. It does not matter what the root config is called, you will still get an error if there is any other include anywhere else.

Hi. Any updates on this development? Is it still being pursued? Thanks

Would be great if nested includes were implemented. Currently we have laid out an environment/component strategy where we need to repeat the generic component configuration in every component:
include "root" {
  path = find_in_parent_folders()
}

# Include the common configuration for the component. The common configuration contains settings that are common
# for the component across all environments.
include "common" {
  path   = "${dirname(find_in_parent_folders())}/infrastructure/${basename(get_terragrunt_dir())}/terragrunt.hcl"
  expose = true
}

This common include would perfectly fit inside the root include.
Tree:
│   terragrunt.hcl
|
├───environments
│   └───dev
|       |   env.hcl (environment specific cross component config)
|       |
│       ├───kv
|       |      terragrunt.hcl (environment specific component config)
|       |
│       └───rg
|              terragrunt.hcl (environment specific component config)
|
└───infrastructure
    ├───kv
    |      terragrunt.hcl (common component config)
    |      main.tf
    |
    └───rg
           terragrunt.hcl (common component config)
           main.tf

Full example in git:
https://github.com/cveld/terraform-tester/tree/main/Examples/terragrunt-environments-with-components

Any update on this? Brain hurts trying to workaround this limitation.

Here is approach I use for merging cfg.yaml files in nested directories of terragrunt stacks:
https://github.com/amkartashov/terragrunt-nested-configuration
In short, all cfg.yaml files are read from top directory to the stack directory and merged with:
this is not actual code, this is effectively generated code
cfg = merge([
  try(yamldecode(file("TOP_DIR/cfg.yaml")), {}),
  try(yamldecode(file("TOP_DIR/prod/cfg.yaml")), {}),
  try(yamldecode(file("TOP_DIR/prod/ecs/cfg.yaml")), {}),
  try(yamldecode(file("TOP_DIR/prod/ecs/cluster/cfg.yaml")), {}),
]...)

another idea is to use terramate to generate nested configuration https://github.com/amkartashov/terramate-terragrunt-example
this approach is more flexible, because terramate is responsible for merging configuration files, not merge() - so it allows custom modification and inheritance of nested configuration settings.

@yorinasub17 what is the current status on adding the ability to include multiple levels?
Thank you!

@elopsod https://terragrunt.gruntwork.io/docs/reference/built-in-functions/#read_terragrunt_config this might be a viable workaround.

Hey folks,
I've been asked to look at this, and I think there's a good argument to be made to close this out as won't do:
https://github.com/gruntwork-io/terragrunt/discussions/3517#discussioncomment-11179041
If folks agree, I'll cut a PR to mark the RFC as won't do in the docs site.


API on "Easy Mode"

It would be nice to throw the file path of a file or directory at some API and have it handle everything (just like running the wormhole command itself). The method(s) to do this don't look like they're exposed.
In other words, something like...
# On the sender's computer...
wormhole.send("/home/bob/Desktop/pizza.png") # Returns string: "1-apple-bacon"

# On the recipient's computer...
f = wormhole.info("1-apple-bacon") # Returns an object with file size, name, type so it can be confirmed
f.save("/home/alice/Documents") # Saves the file/directory to /home/alice/Documents

I'm making a GUI for wormhole, and right now I'm just running the wormhole command itself (and parsing output), but I'd prefer not to do that.

Isn't it possible to simply import and instanciate the Sender object in /cli/cmd_send.py ?


wasm: browser compatibility policy

I would like to propose a discussion on how we want to handle browser compatibility. There are several features being worked on: https://github.com/WebAssembly/proposals When do we want to use them? Do we want to offer backwards-compatibility?
Here are my own thoughts, open for debate:
(1) Go's support for WebAssembly is experimental and it should stay experimental at least until WebAssembly itself is fully standardized (right now the main spec is still in "Phase 2 - Proposed Spec Text Available").
(2) The WebAssembly project itself has no clear answer yet on how feature tests and backwards compatibility should work, see https://webassembly.org/docs/feature-test/
(3) Modern browsers (except Safari) have auto-update mechanisms, so staying with the latest version shouldn't be an issue for most users.
Due to (1), (2) and (3) I would opt for no backwards compatibility as long as Go's support for WebAssembly is experimental.
New WebAssembly features can be adopted as soon as they are marked as "standardized" and are supported by the latest stable Chrome, Firefox, Edge and Safari (on desktop).

/cc @bradfitz @myitcv @dennwc @theclapp

This bug is a little abstract, so this answer is somewhat vague, but:
I'm fine with treating experimental things as experimental, but we should start trying to minimize how often we break users for doing basic things using just the base "MVP WebAssembly" bits. It sounds like everybody's cool with the syscall/js.NewCallback change, but that's the sort of change we shouldn't be making every release.
For experimental new features of WebAssembly, I'd prefer them to be opt-in somehow with associated "This is super experimental!" documentation on the opt-in switch, at least where possible. At least document the state of the compatibility policy in, say, the syscall/js package comment and/or release notes.

Yes, I agree that we should aim for keeping the API stable. This issue however was mainly about browser compatibility.
The features in question wouldn't add new API, but improve performance or reduce output size. Some examples:

a builtin memcpy operation
other operations that currently require a slow workaround
advanced memory operations so we don't have to request 1 GB of memory at startup
support for threads

Here are some options we have:

Not use the new features, stay with the MVP features. (This would mean suboptimal performance.)
Add compiler flags to choose which features to use. (Go usually avoids compiler flags.)
Output multiple wasm binaries using different feature sets.
Build a special decoder that can polyfill unsupported features at load time. (This will probably be the best solution at some point, but is also complicated and will likely be tackled by the WebAssembly project itself.)
No backwards compatibility for now.

Given these options I would prefer to not have backwards compatibility right now and as soon as feature testing is possible I would add some warning mechanism that tells the user to upgrade the browser.

I'm guessing we don't want to use different values of GOOS here? GOOS=chrome etc...

I'm guessing we don't want to use different values of GOOS here? GOOS=chrome etc...

More GOOS or GOARCH values are cumbersome. Having just one for chrome wouldn't be enough, you would need to target browser versions or generations, e.g. wasm-10-2018.

Let's use memcpy as an example:
Even without an official feature detection API, can we try to use it in runtime init & catch a fault & set a bool about whether to use it? We do that elsewhere in the runtime for other platforms.
Likewise with other stuff.
If we really can't feature detect at all, I'd say we shoudn't use stuff by default until it's in all the major browser's stable releases.
Worst case we could add a GOWASM environment variable like GOARM, GO386, GOMIPS, etc.

Add compiler flags to choose which features to use. (Go usually avoids compiler flags.)

Do you mean actual compiler flags like -a or -n, or build tags?
Of course, I imagine build tags would suffer from the same issue as GOOS mentioned previously: "Having just one for chrome wouldn't be enough, you would need to target browser versions or generations".  But even so, it seems like build tags might allow more flexibility than compiler flags.

can we try to use it in runtime init & catch a fault & set a bool about whether to use it? We do that elsewhere in the runtime for other platforms.

I think the issue is that the entire wasm code is validated AOT. As explained here (https://webassembly.org/docs/feature-test/) -
Since some WebAssembly features add operators and all WebAssembly code in a module is validated ahead-of-time, the usual JavaScript feature detection pattern:

if (foo)
    foo();
else
    alternativeToFoo();
won’t work in WebAssembly (if foo isn’t supported, foo() will fail to validate).

I would recommend against more flags or environment variables. Given that wasm is a fast moving platform and it is much easier to upgrade browsers than operating systems.

Not use the new features, stay with the MVP features. (This would mean suboptimal performance.)

Perhaps we can delay new features by one release, so that we give enough time for everybody to catch up to the latest browser version ?

can we try to use it in runtime init & catch a fault & set a bool about whether to use it? We do that elsewhere in the runtime for other platforms.

I think the issue is that the entire wasm code is validated AOT.

Right. The WebAssembly loader will reject the binary if there are any unsupported operations. The runtime init will not be executed. Currently the only way to do feature detection is to try to load a wasm binary and if it fails then load a different binary.

If we really can't feature detect at all, I'd say we shoudn't use stuff by default until it's in all the major browser's stable releases.

In my first post I suggested "New WebAssembly features can be adopted as soon as they are marked as "standardized" and are supported by the latest stable Chrome, Firefox, Edge and Safari (on desktop)." @bradfitz This is exactly what you mean, isn't it?

Perhaps we can delay new features by one release, so that we give enough time for everybody to catch up to the latest browser version ?

Sounds like a good idea. Maybe 2 or 3 months after the feature has been released?

In my first post I suggested "New WebAssembly features can be adopted as soon as they are marked as "standardized" and are supported by the latest stable Chrome, Firefox, Edge and Safari (on desktop)." @bradfitz This is exactly what you mean, isn't it?

Yeah.
But if you want to do better earlier, I think it'd be fine to use a GOWASM environment variable to opt-in to newer features that aren't as widely available.
The default should be to produce a binary that works everywhere, but if you want to use something more experimental that only works on one browser, GOWASM=threads,foo,bar seems fine to me at least.

New WebAssembly features can be adopted as soon as they are marked as "standardized"

I think this should be the gate to decide whether to implement, rather than relying on the release train on the browsers.
I agree with @bradfitz though to maybe put the bleeding edge stuff behind some flags.
On the flipside that's getting back to the bad old days of "best ran on X browser!" badges, but that's not a Go problem 😄

One reason to include new WASM features, and not wait 2-3 months, is that users of such features can give feedback on how Go interacts with them so that things are tuned/fixed by the time they are standardized.

Yep, there are definitely people around in the Go Community who are chomping at the bit to try out the new browser Wasm capabilities, such as threads.  Giving us the ability to try these bleeding edge things does help. :smile:

@neelance Do you know what would be needed/changed in the runtime to make threads a reality? (What are the challenges?)
Perhaps support could be added gradually first focus on atomic instructions and the bulk mem-ops...
Btw. Do we need bulk memory operations for threads in Go since the runtime only needs a pool of threads. (GOMAXPROCS) So re-initializing the data-segment would perhaps be okey?
Can I help in any way?

I haven't yet started to look into threads and no concrete plans either. I think I'll wait until the proposal gets to phase 3: https://github.com/WebAssembly/proposals
How are bulk memory operations related to threads?

By request from @neelance, let me restate my proposed policy from my earlier comment (https://github.com/golang/go/issues/28360#issuecomment-432853069) more clearly:
I think the Go default wasm output should be something that runs on the latest stable releases of Chrome, Edge, Safari, Firefox, iOS Safari, and Android Browser.
That is, WebAssembly should work by default "everywhere", where everywhere means those 6 browsers.
Anything that's either:
a) not supported by those 6 browsers,
b) not yet standardized by WebAssembly
.... should be behind a GOWASM=foo flag, since we can't really feature detect on webassembly at runtime.

Okay, this is the same as I was proposing, except that you list more browsers.
To clarify: For Safari, iOS Safari and Android Browser, how exactly do we define "latest stable release"? New versions of these browsers are sometimes bound to OS upgrades.

Based on https://go-review.googlesource.com/c/build/+/168060/1#message-869955fa1d2b803f63e4aa2b3ed0de87af2b5d9b I think we need to add:
c) not yet supported by the Node.js LTS release that gets shipped by Debian.

To clarify: For Safari, iOS Safari and Android Browser, how exactly do we define "latest stable release"? New versions of these browsers are sometimes bound to OS upgrades.

Good point about Safari. For iOS, latest iOS is fine. That doesn't work quite as well for desktop, but I'm fine also saying latest macOS only there.
For Android Browser: that's evergreen these days, no?

c) not yet supported by the Node.js LTS release that gets shipped by Debian.

I'd soften that to say whatever Debian-provided stable-backports package exists. Currently that's:
https://packages.debian.org/stretch-backports/nodejs (8.11.1)

For Android Browser: that's evergreen these days, no?

Could be, I'm not sure.

I'd soften that to say whatever Debian-provided stable-backports package exists.

This does not seem like a good choice to me. Reasons:

The backport does not seem properly maintained. Version 8.11.1 got released on 2018-03-29, but the latest 8.x release is 8.15.1 released on 2019-02-28. So the backported version is missing 3 security releases and countless bugfixes.
The current "active LTS" version of Node.js is 10.x, version 8.x is in "maintenance LTS" mode.
The latest Node.js 8.x, which is 8.15.1, ships with V8 6.2.414, which is the same as Chome 62 used, released on 2017-10-17. This seems pretty old.

So if this would be our requirement, then the browser requirements probably wouldn't matter any more.

Would using latest active LTS be sufficient for you? Otherwise let's just ignore nodejs for our wasm policy reasons. Nodejs people with a few servers can update. Millions of end users with browsers is harder.

Let's maybe postpone the decision until the other requirements are met and then we can see how much Node.js is behind.

I haven't yet started to look into threads and no concrete plans either. I think I'll wait until the proposal gets to phase 3: https://github.com/WebAssembly/proposals
How are bulk memory operations related to threads?

Okey. Sorry. I thought the tread proposal for for wasm was at a much later state of development since it seemed to be supported in at least some browsers.
I think conditional segment initialization is part of that proposal. I guess something like that would be necessary to avoid initializing memory twice?
As a reference, this was a nice read about the subject.

As a reference, this was a nice read about the subject.

Thanks, this is a good overview.

We just updated our builders from nodejs v8.11.1 to nodejs v12.1.0 for #31282
But I continue to believe that Linux distros' current version of nodejs doesn't matter at all. Our WebAssembly version policy should be based solely on browsers.

I did some testing of the current feature support:
| signext | satconv
-- | -- | --
Node.js 10 (LTS) | needs flag | needs flag
Node.js 12.8.0 (current) | yes | yes
Chrome 76 | yes | yes
Chrome Mobile 75 | yes | yes
Firefox 68.0.2 | yes | yes
Edge 18 | yes | yes
Safari 12.1.1 | no | no
Safari Tech Preview 13.1 | no | no
It seems like Apple is not interested in supporting new WebAssembly features, even the Safari Tech Preview has no support.

Due to (1), (2) and (3) I would opt for no backwards compatibility as long as Go's support for WebAssembly is experimental.

Now WebAssembly is versioned 1.0, is this issue still valid?

There is now a table that shows which browsers/engines support which WebAssembly features: https://webassembly.org/roadmap/
Unfortunately Safari is still showing no effort at all to keep up with the evolution of WebAssembly. I am not sure what to do... Would it be reasonable to drop support for Safari?

There is now a table that shows which browsers/engines support which WebAssembly features: https://webassembly.org/roadmap/
Unfortunately Safari is still showing no effort at all to keep up with the evolution of WebAssembly. I am not sure what to do... Would it be reasonable to drop support for Safari?

I hope that decisions is not made lightly, Safari has almost 17% market share according to these metrics. Maybe it is worth asking the WASM group how they are dealing with this and are in the know on how Safari's roadmap looks like (at least roughly)? Also, maybe it is worth investigating how other languages (Rust, C# are dealing with Safari as a target for WASM improvements)
I'm not a an expert and don't know what the 'signext' and 'satconv' features bring to the table. But maybe it can be left up to the developer to decide if they want to drop Safari support for those features?

I hope that decisions is not made lightly

Just collecting data and feedback at the moment.

Safari has almost a 17% market share according to these metrics

Yes, this is why I am quite hesitant. However, I asked for feedback on the Gophers Slack and got 13 upvotes and zero downvotes for removing Safari, see https://gophers.slack.com/archives/C4GU6CHSQ/p1601418152003700.

Maybe it is worth asking the WASM group

Good idea. Feel free to do so if you find a proper place for asking. It fits the situation that on https://webassembly.org/community/feedback/ there are links for V8, Firefox and Edge, but not for Safari.

maybe it is worth investigating how other languages (Rust, C#) are dealing with Safari

I've looked into Rust and it seems that at the moment it still supports Safari.

I'm not a an expert and don't know what the 'signext' and 'satconv' features bring to the table.

This is not about signext and satconv. These can be toggled with a flag quite easily. With reference types or theads it would be much harder to support two modes at the same time.

Thank you for the quick response and hopefully it didn't feel like I was coming in too hot! I am just really hoping for Go to become a stable medium for targeting the web on all platforms and all browsers. Heck, i've even put a lot of effort into getting Go wasm to run on IE11. I basically stumbled upon this thread by accident and felt a bit disheartened that the decision to drop Safari was even on the table.
Of course I'm just a single voice on the internet and other's usecase may vary so - indeed - it is a good idea to gather more feedback. But I do believe that it needs a wider audience than just the Gopher slack. With your permission I will post a link to this discussion on the Golang subreddit and the golang-dev google groups.
The other side of the discussion is having overview of what is gained when Safari support is dropped. You mention Threads, maybe there are other important features. As my memory serves there is also an open issue to reduce the WASM filesize that requires browser advancements.

Good idea. Feel free to do so if you find a proper place for asking.

I was actually hoping that you in your official capacity as a maintainer for Go's WASM would have communications with the web assembly group in some sort of way. It's unlikely that I would get any insights in the Safari roadmap.

Thank you for the quick response and hopefully it didn't feel like I was coming in too hot!

All good. 👍

i've even put a lot of effort into getting Go wasm to run on IE11.

Wow, nice! Couldn't we use this as a fallback for Safari, too?

With your permission I will post a link to this discussion on the Golang subreddit and the golang-dev google groups.

Sure, go ahead. Maybe golang-nuts instead of golang-dev, though.

The other side of the discussion is having overview of what is gained when Safari support is dropped.

I'll write a message to this thread as soon as it actively prevents me from starting to work on some feature.

As my memory serves there is also an open issue to reduce the WASM filesize that requires browser advancements.

That would probably be https://github.com/WebAssembly/funclets. Unfortunately the proposal is stalled because of politics (it would be very hard for V8 to support it).

I was actually hoping that you in your official capacity as a maintainer for Go's WASM would have communications with the web assembly group in some sort of way.

Nope, I have not.

Would it be reasonable to drop support for Safari?
Keep in mind that Safari is the only way to target IOS.

@neelance Btw, I've posted the link to this thread on Reddit and Golang nuts yesterday.

I am inclined to suggest that when a dev is preparing a marketing tool such as a website, they should target as wide of an audience as possible. Dropping Safari or IE11 is not prudent at this time as they are significant in the market though not primary.
Output multiple wasm binaries using different feature sets. Splash page detects browser capabilities and deploys appropriate solutions. Let the user decide if they want to use IOS, IE11, or upgrade. Give devs a standard app IPL to handle the alternatives. Do not ask the programmers if they want to drop Safari, they are not stakeholders, and do not ask the marketing guys who do make the decisions or you will end up using JavaScript.
In principle, be inclusive and serve the entire browser community, then optimize using new features using whatever implementation may be the most appropriate use of advanced technology.

@comaldave I have seen this position several times now. It seems like it is not clear that the options are not "less support" vs. "more support". Since it is mostly me working on WebAssembly and carrying legacy support is a lot of work, the options are more along "less support" vs. "no progress on WebAssembly for Go at all". I am working on this for free in my spare time and if I don't feel like putting in the effort for legacy support, then I won't do it. I am not trying to force some conclusion, I just want to point out my position and why I initially started this discussion.

I totally understand and agree with you. I was expressing an ideal
situation.  The solution is
to have more talented volunteers. I would rather be beaten with a stick
than help you with compliance with Safari archaic refusal to advance. I do
very much want to assist you but my bandwidth is also limited. In point of
fact, I would prefer that you remain on the bleeding age and make it the
best possible product on the most performant platform. I am also hoping
that you might be willing to mentor a  talented CS student who is willing
to work on the legacy stuff as well. If it is great on Chome and nowhere
else, then it is a proof of concept, if it works for 80% of users then it
may be marketable, not ideal but usable. And sometimes, you cannot achieve
perfection, you just try to meet minimum specs and ship it on deadline.
What I am trying to do is to train CS students on how to best use what you
are creating, so make no mistake, I very much admire and appreciate your
efforts.
On Tue, Oct 27, 2020 at 7:04 AM Richard Musiol<EMAIL_ADDRESS>wrote:

@comaldave https://github.com/comaldave I have seen this position
several times now. It seems like it is not clear that the options are not
"less support" vs. "more support". Since it is mostly me working on
WebAssembly and carrying legacy support is a lot of work, the options are
more along "less support" vs. "no progress on WebAssembly for Go at all". I
am working on this for free in my spare time and if I don't feel like
putting in the effort for legacy support, then I won't do it. I am not
trying to force some conclusion, I just want to point out my position and
why I initially started this discussion.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/golang/go/issues/28360#issuecomment-717197250, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAYCWHIGTOIHS72VSGCJODSM2ZOBANCNFSM4F675HFA
.

--
Respectfully submitted,
[image: photo]
David Lynn Skinner
Secretary, Davsk Ltd Co
1-501-436-9086 | 1-870-617-2770 |<EMAIL_ADDRESS>https://conf.davsk.net/david
650 S 5th St Apt 88 Arkadelphia AR 71923 | 1-501-201-0414
http://stackoverflow.com/users/3886366/david-skinner
http://github.com/ComalDave/ http://facebook.com/david.lynn.skinner/
http://www.instagram.com/david.lynn.skinner/
http://www.linkedin.com/in/david-l-skinner/
http://twitter.com/SkinnerDavidL http://youtube.com/c/DavidSkinnerDavsk
http://www.pinterest.com/skinnerdavid/
IMPORTANT: The contents of this email and any attachments are confidential.
They are intended for the named recipient(s) only. If you have received
this email by mistake, please notify the sender immediately and do not
disclose the contents to anyone or make copies thereof.
All views and opinions expressed in this email message are the personal
opinions of the author and do not represent those of the company. No
liability can be held for any damages, however, caused, to any recipients
of this message.
No employee or agent is authorized to conclude any binding agreement on
behalf of the company with another party by email without specific
confirmation.
If you received this email in error, please notify us immediately by
sending an e-mail or by calling.
Be like me, be Carbon free - don't print this and save a tree
"Try not to become a man of success, but rather try to become a man of
value." - Albert Einstein.
Create your own email signature
https://www.wisestamp.com/signature-in-email/?utm_source=promotion&utm_medium=signature&utm_campaign=create_your_own&srcid=4651978702585856

Safari will support threads! https://webkit.org/blog/11648/new-webkit-features-in-safari-14-1/

I haven't yet started to look into threads and no concrete plans either. I think I'll wait until the proposal gets to phase 3: https://github.com/WebAssembly/proposals
How are bulk memory operations related to threads?

@neelance According to  this issue:https://github.com/WebAssembly/threads/issues/163, the thread spec may never be stage 3..But it seems all browsers support this feature: https://webassembly.org/roadmap/

From https://github.com/WebAssembly/threads/issues/163:

the only thing missing for phase 3 is the test suite. The reason that is tricky is that the current test suite has no concept of threads, so there is some design work necessary to figure out how to extend it properly. That's what the conversation above is about.
Unfortunately (or fortunately?) there hasn't been much motivation to push on this because threads have already been shipped in all the major browsers.

This is such a strange situation. "Use threads, they are awesome enough so everyone has implemented them, but no one bothers enough to get them into the official standard." We have standardised almost everything on the web and new standards emerge regularly. There seem to be enough people that care about standards and push them forward. Where are they with regards to WebAssembly? Did they get lost?
Sorry for the rambling. With regards to Go and Wasm threads I guess a good way forward would be for someone to open a Go proposal for adding them, despite the situation with the standard. Then we can have an informed decision process.

Wasm 2.0 is in the making. I'll try to give an overview:
Sign extension instructions
Go supports this with GOWASM set to signext. We should remove the opt-in after some other feature forced us to drop backwards-compatibility anyways.
Non-trapping float-to-int conversions
Go supports this with GOWASM set to satconv. We should remove the opt-in after some other feature forced us to drop backwards-compatibility anyways.
Multiple values
Useful for calls that use the Wasm ABI, e.g. WASI. Internally Go uses its own ABI, putting parameters and return values on the stack (linear memory) instead of using Wasm parameters and return values. One could consider to switch to the Wasm ABI in general, but this would be a huge effort and it would definitely need a decision on a Go proposal first, because I am not sure that the Go compiler team would be happy about adding such complexity.
Reference types & Table instructions
I think we could already use this to make the JS interop a bit simpler. The full potential will probably only unlocked by future Wasm proposals that have not been standardised yet.
Bulk memory and table instructions
We could definitely use these ops to speed up some memory operations that currently use loops. However, on its own it is probably not significant enough to justify dropping backwards-compatibility, so we would need to use a new GOWASM flag.
Vector instructions
I don't know much about SIMD. And Safari does not support them yet.

[…] With regards to Go and Wasm threads I guess a good way forward would be for someone to open a Go proposal for adding them, despite the situation with the standard. Then we can have an informed decision process.

I would love to kick this process off. Is there a specific process for that?

@ntindle For the proposal process see https://go.dev/s/proposal (which may go to the same link, I'm not sure offhand).

@neelance ^ this is the proposal. Let me know if you’d like any changes.

I have looked at the state of things again. Seems like Safari is finally catching up: Safari 15 supports most of the Wasm 2.0 features.
However, since Safari is not really an evergreen browser, the older Safari versions still have some usage.
@bradfitz wrote above:

For iOS, latest iOS is fine. That doesn't work quite as well for desktop, but I'm fine also saying latest macOS only there.

There seems to be an option to compile Wasm to plain JS, so we could argue that if you are interested in backwards compatibility, then using this tool for producing a fallback is necessary anyways for browsers that don't support Wasm at all.
My conclusion would be that it is now the time to drop backwards-compatibility for Safari before version 15 (and equivalent other browsers/runtimes).

@neelance ^ this is the proposal. Let me know if you’d like any changes.

The proposal was closed due to not containing an implementation design (though the proposals page explicitly says that’s not required).
Now that phase 3 is merged, what’s the next steps?


Allow equation characters to be selected

is it possible to get it in staging? since IMPACT is doing testing there

This functionality is available in the dev seed staging APT instance (https://nasa-apt.surge.sh/).
Note: in order to deploy the GCC-compatible configuration back to staging I had to tear down and re-create the stack because of a VPC related issue described here. Since we don't guarantee stability in staging evironments I went ahead with the change without backing up, but I can restore from the staging data that's currently in GCC


Consolidate Node.js and JavaScript formatting settings

This disparity in formatting options has caused confusion amongst some users. Node.js and JavaScript formatting settings have reached parity at this point. Is there any reason we might want to include separate settings for client-side and server-side JavaScript code?
I'm hesitant to simply remove Node.js formatting options and use JS because we still have different IntelliSense options for Node.js and JavaScript, and we don't want people to extrapolate from the formatting options that modifying JS IntelliSense will modify Node.js IntelliSense...
A few ideas:

Use same settings, but include formatting tab under Node.js options that directs user to JavaScript formatting settings (simply increasing visibility of formatting options.)
Include same formatting options under Node.js, but just have them linked to JavaScript settings (and include a note that this modifying Node.js options will modify JS options).
Use different settings, but include a "mirror JavaScript formatting options" button.

I like the last option (keep using different settings with an option to mirror them).

Closing as migrating to the new Salsa IntelliSense experience will be our path towards resolving this issue.


Add review

Add review from webapp

Thanks for your contributions @dsrvstv. Unfortunately, they are of not use; and I am hereby rejecting both of your pull requests. Answering all true with a high degree of confidence invalidates your submissions because not all entries are that straightforward. I would kindly ask you to please not waste our time.
ref: #283, #284

Thanks for your contributions @dsrvstv. Unfortunately, they are of not use; and I am hereby rejecting both of your pull requests. Answering all true with a high degree of confidence invalidates your submissions because not all entries are that straightforward. I would kindly ask you to please not waste our time.
ref: #283, #284


Move ABAP2XLSX from $TMP to Z Package

Hi, guys.
When I've moved ABAP2XLS's objects from $TMP to Z package, it was created a repair request with a object: "Concept (Online Text Repository) - Short Texts"  LIMU SOTT ZPACKAGE , is this correct?
Thanks

no it should be a workbench dev.correction task  not repair
On May 11, 2017 02:09, "GH-RNA"<EMAIL_ADDRESS>wrote:
Hi, guys.
When I've moved ABAP2XLS's objects from $TMP to Z package, it was created a
repair request with a object: "Concept (Online Text Repository) - Short
Texts" LIMU SOTT ZPACKAGE , is this correct?
Thanks
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ivanfemia/abap2xlsx/issues/480, or mute the thread
https://github.com/notifications/unsubscribe-auth/AVmWg-LBaXzlSOf-ZBtceoZpobQ16AqDks5r4eFLgaJpZM4NW5FD
.


merge latest develop

Purpose

For reviewers

Related Github issues

Changes

Tests

Deployment Considerations
Version Notes
{ major | minor | patch }

NOTE: Include the version notes in the squash commit message

prnet cleaned-up successfully


fix issue #111

Now journal will show all users in select tag .

@NikhilM98 yes but there is a drawback there that if you want to search a user which is at 40th position then it might create a problem for the admin as he will not be able to find him in the list

@ashish0910 I'm saying that Select2 has support for Ajax requests. With some modification in the backend, we'll be able to search for the users on the server side. Transferring data of thousands of users in a single request doesn't seem efficient.

@NikhilM98 yes that will be good . I will change it accordingly .

@llaske what are your views on this as adding a realtime search in select through AJAX might put some load as for example when admin types 'a' the query will start in background and start searching all the students with letter 'a' which will be in huge number and then when he press 's' then query will search for all users with 'as' in name which will again be huge number and process will go on like this . This is not looking very efficient .
I propose a search for name of the user using an input field as in user view and if the user do not exist a message will be shown saying no user found .

@ashish0910 The search can be optimized.

Set a limit for the number of users selected in one query.
In the Select2 library, we're using, there's an option to set delay. You can set the delay to 250ms so as to avoid unnecessary queries.
Optional: Set a minimum number of terms after which you start searching

@tarunsinghal92 can we have search similar to that in user views and show results if the user exists otherwise show user doesn't exist ?


Remove waitForKnativeServiceReady in gitlab source.

Can we create issues to track this and the other TODO?
Originally posted by @vaikas in https://github.com/knative/eventing-contrib/diffs

I can take this one
/assign


Add additional classification (F1, Hamming loss) and regression (MSE) metrics

Description of Changes

Adds a few new classification (F1 score, Hamming loss) and regression (MSE) metrics + tests. I've also changed RMSE so that it reuses the MSE functionality.
Partially implements #12.
Includes

[X] Code changes
[X] Tests
[ ] Documentation

Note
I'm not sure if the checks for inputs (y and yPred) being of equal length are necessary (not sure how rigorously input should be checked). If they stay in, they should probably also be added to other metrics.

Thanks for the PR @matejklemen. I'll check it out when back from vacation.

LGTM, thanks for your contribution @matejklemen.


⚠ ClamAV has degraded performance

In db32174, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 194 ms

Resolved: ClamAV performance has improved in 9d8c93d.


Module 1 Unflattened age responses

Hi Jake, I was looking at this week's automated QC rules and noticed a new set of issues with mom, dad, sibling, and child age responses for module 1 version 1. I'm not sure why/how/if the older responses for a module no longer available have changed. If you look at lines 21-152 here https://nih.app.box.com/file/1474903479636 you'll see that the responses , [958239616], 178420302, [178420302], or [] have been replaced with  {D_178420300:0,D_958239600:0} or {D_178420300:0:0}

Thanks for letting me know. This definitely seems like a flattening bug. I'll look into this and get back to you

Thanks!

@KELSEYDOWLING7 I've resolved this issue. There were some variables that were incorrectly listed in the module1_v1-variables.csv file. I corrected this, re-flattened the table and generated a new QC Report and those issues no longer pop up.


alpine 3.16

alpine 3.16 has been released, this updates base image to use it.

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@93ab907). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main   #19797   +/-   ##
=======================================
  Coverage        ?   47.28%
=======================================
  Files           ?      957
  Lines           ?   133340
  Branches        ?        0
=======================================
  Hits            ?    63051
  Misses          ?    62622
  Partials        ?     7667

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 93ab907...2831ed6. Read the comment docs.


Testing Purpose

Question Validation

[X] I have searched both the documentation and discord for an answer.

Question
How to resume the index building process from where it left off in case of an error?

torvalds.dev is analyzing the ticket

The user is asking how to resume the index building process from where it left off in case of an error. The relevant file provided is llama_index/response_synthesizers/refine.py.
The file contains Python code that seems to be part of a larger project related to indexing and synthesizing responses. The code includes several classes and methods, including DefaultRefineProgram, StructuredRefineResponse, and build_index_from_nodes.
The build_index_from_nodes and abuild_index_from_nodes methods appear to be responsible for building an index from a set of nodes. They do this recursively, consolidating chunks in a bottom-up fashion. If an error occurs during this process, it's not immediately clear from the provided code how the process would be resumed.
To answer the user's question and suggest relevant actions, we need more information about how errors are currently handled in the code and what kind of errors are expected. It's also important to know if there's any mechanism in place to save the state of the index building process, which would be necessary to resume it after an error.
Here's a general plan:

Review the error handling in the code. Look for any try/except blocks or error logging that could give clues about how errors are handled.

Check if there's a mechanism to save the state of the index building process. This could be a database, a file, or some in-memory data structure.

If there's no such mechanism, consider implementing one. This could involve periodically saving the state of the index building process to a file or database.

In the event of an error, the code should catch the error, log it, and then load the saved state and resume the index building process.

Test this implementation with different types of errors to ensure it works as expected.

Remember, this is a general plan and might need to be adjusted based on the specifics of the code and the project.

can you provide any relevant code?


Updates for Atomizer 2.0-beta API changes

@renatoi

Holding until atomizer-2.0.0-beta.1 is deployed

LGTM


pyOpenSSL is missing from setup.py's install_requires

Tested using conda on the latest master and develop.  Installing the package manually solves the issue.
Installation
$ conda create -n eg ujson
Fetching package metadata ...........
Solving package specifications: .

Package plan for installation in environment /opt/miniconda2/envs/eg:

The following NEW packages will be INSTALLED:

    ca-certificates: 2018.03.07-0
    certifi:         2018.10.15-py27_0
    libedit:         3.1.20170329-h6b74fdf_2
    libffi:          3.2.1-hd88cf55_4
    libgcc-ng:       8.2.0-hdf63c60_1
    libstdcxx-ng:    8.2.0-hdf63c60_1
    ncurses:         6.1-hf484d3e_0
    openssl:         1.1.1-h7b6447c_0
    pip:             18.1-py27_0
    python:          2.7.15-h9bab390_2
    readline:        7.0-h7b6447c_5
    setuptools:      40.5.0-py27_0
    sqlite:          3.25.2-h7b6447c_0
    tk:              8.6.8-hbc83047_0
    ujson:           1.35-py27h14c3975_0
    wheel:           0.32.2-py27_0
    zlib:            1.2.11-ha838bed_2

Proceed ([y]/n)? y

#
# To activate this environment, use:
# > source activate eg
#
# To deactivate an active environment, use:
# > source deactivate
#

$ source activate eg
$ git br
  develop
* master

$ git top
758c6d6 (2018-11-01 14:57:03 -0600) Set theme jekyll-theme-slate (HEAD, origin/master, master) <Brian Bingham>
467f2e1 (2018-11-01 14:56:47 -0600) Set theme jekyll-theme-time-machine <Brian Bingham>
3b2a721 (2018-11-01 14:56:18 -0600) Set theme jekyll-theme-slate <Brian Bingham>
24e424f (2018-10-26 16:10:34 -0700) Rename INDEX.md to index.md <Tony Lee>
9d8c3ca (2018-10-26 16:00:38 -0700) Release 6.3.0 (tag: 6.3.0) <tonyl>

$ pip install -e .
[...]

Calling eventgen
$ splunk_eventgen -v generate /path/to/eventgen.conf
Traceback (most recent call last):
  File "/opt/miniconda2/envs/eg/bin/splunk_eventgen", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/opt/miniconda2/envs/eg/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3123, in <module>
    @_call_aside
  File "/opt/miniconda2/envs/eg/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3107, in _call_aside
    f(*args, **kwargs)
  File "/opt/miniconda2/envs/eg/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3136, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/opt/miniconda2/envs/eg/lib/python2.7/site-packages/pkg_resources/__init__.py", line 578, in _build_master
    ws.require(__requires__)
  File "/opt/miniconda2/envs/eg/lib/python2.7/site-packages/pkg_resources/__init__.py", line 895, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/opt/miniconda2/envs/eg/lib/python2.7/site-packages/pkg_resources/__init__.py", line 781, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'pyOpenSSL>=0.14; extra == "security"' distribution was not found and is required by requests

Fixing the issue, and calling eventgen again
$ pip install pyOpenSSL
[...]

$ splunk_eventgen -v generate /path/to/eventgen.conf
2018-11-06 17:50:15 eventgen        INFO     MainProcess Logging Setup Complete.
2018-11-06 17:50:15 eventgen        DEBUG    MainProcess Parsing configuration files.
2018-11-06 17:50:15 eventgen        INFO     MainProcess Retrieving eventgen configurations with ConfigParser()

PR made to address this issue (https://github.com/splunk/eventgen/pull/97).


Hardcoded links for bulk/cdc includes

Closes #12251

This change is

@lnhsingh I believe this covers all the problem links, lmk if not!

LGTM, thank you!!


Fallback searches are dominating the results

Expected Behavior
I'd like to see the fall back search results to be the last items in the results.
Actual Behavior
The fall back search results are usually listed on the top of the results.
Steps to reproduce the behavior

Add a few fall-back searches to ~/.zazurc.json
Add the vpn plugin to ~/.zazurc.json

    "amjith/zazu-mac-vpn",
    {
      "name": "tinytacoteam/zazu-fallback",
      "variables": {
        "rootSearches": [
          "google",
          "wolf",
          "mdn",
          "gh"
        ]
      }
    }

Try ,v abc, notice how the results from the vpn plugin are at the bottom below the fallback search.

Versions

Zazu: 0.3.2
OS: OS X

Please, include a link to gist of most applicable ~/.zazu/log/ file.
https://gist.github.com/amjith/51c0d7c65c1b6fc3dd7d5943bff5d8da

So the way this works is Zazu initial gives priority to plugins that respond faster. So if two new plugins are installed and they both respond to the same input, the one that responds first will be at the top.
For instance the calculator plugin responds faster than the fallback search, but the fallback search responds faster than the vpn plugin:

If you click on a result the id of that result gets bumped up so it's closer to the top for that query.
I can think of two solutions:

Make your vpn plugin faster! It's getting the list of vpn's on the fly. These could be cached. Currently the horrible way I made the fallback search respond slower is that it contains a setTimout.

Zazu could allow plugins to define their own priority somehow. But this would need to be fair, and Zazu would still need to be able to bump results that are clicked on more.

https://github.com/tinytacoteam/zazu/blob/master/app/containers/pluginWrapper.js#L148-L163
https://github.com/tinytacoteam/zazu/blob/master/app/transforms/resultSorter.js

What if, instead of giving plugins the power to determine priority, the results were ordered based on the order they were listed in ~/.zazurc.json?  I guess it could be weird if you were scrolling down the list of results, and a plugin that made a network request returned a second later.  However, I think we could manage that UX somehow.
Another thing I thought of was giving PrefixScript and Keyword blocks higher priority, but I'm not sure if that would be fair to scripts accepting a wider range of input (e.g. the calculator would be lower in the results).

I like the idea of prioritizing block types. I'd probably pick this order:

Prefix
Keyword
Root

We could sub-rank based on load time, then have Zazu do it's own sort later on if you click on the result.
What do you think?

Yes. Having a set ranking based on the plugin type and using the load time as a secondary sort is a good idea.

This has been bothering me as well. I like the proposed solution; please implement it.

This will go out in the next release.


Allow passing without any tests

What does this PR do?
Allows frontend tests to pass. Issue before was that there were no tests found
What issues does this PR fix or reference?
#47

this probably isn't what we want - we want frontend tests, it's just that they fail for some reason

this probably isn't what we want - we want frontend tests, it's just that they fail for some reason

they dont pass because there are no frontend tests

(although I guess the real solution is to add frontend tests then)

yea let's add some simple frontend test then instead rather than adding this flag


Fullscreen without moving to a new space

I have been looking through issues and wiki pages, but haven't found a way to prevent applications from being moved to a new space at the end of the list, when fullscreening them. I understand that this is normal macOS behaviour, but it doesn't really fit in with a window manager like this? I want to be able to eg. fullscreen Firefox in space 2 (to get rid of the title bar buttons I don't need), without having to open mission control and manually re-arrange the spaces to make sure I can still use the same keyboard shortcut to access it. Is this possible?

It is not possible to fullscreen without moving to a new space; this is a macOS thing.
You might be able to make some sort of script that uses yabai -m space --move .. to re-order the space automatically the first time the window enter fullscreen.

same trouble


Fix cuda and cuda:0 bug

Fix this quite annoying bug that arises from:
import torch
x = torch.randn(3, device='cuda')
print(x.device == torch.device('cuda')) # False
print(x.device == torch.device('cuda:0')) # True
y = torch.randn(4)
print(y.device == torch.device('cpu')) # True
print(y.device == torch.device('cpu:0')) # False

We get a TypeError from td_tensor.check_callable() when we call mesolve with H.to('cuda') instead of H.to('cuda:0').

Then it seems a bit reckless to "fix" it by ourselves without knowing why it has been done so IMHO

If you have two GPUs you can't select on which one the code runs now 😕 I agree that we need a fix though.

Then it seems a bit reckless to "fix" it by ourselves without knowing why it has been done so IMHO

I don't get your comment. We're only fixing our own device check here.


installation failed

C:\Users\Thaem\Desktop\Coding projects\lagooner>npm install node-opus

<EMAIL_ADDRESS>install C:\Users\Thaem\Desktop\Coding projects\lagooner\node_modules\ref
node-gyp rebuild

C:\Users\Thaem\Desktop\Coding projects\lagooner\node_modules\ref>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\....\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "" rebuild )
gyp ERR! build error
gyp ERR! stack Error: Command failed: reg query "HKLM\Software\Microsoft\MSBuild\ToolsVersions" /s /reg:32
gyp ERR! stack 'reg' is not recognized as an internal or external command,
gyp ERR! stack operable program or batch file.
gyp ERR! stack
gyp ERR! stack Can't find "msbuild.exe".  System Windows_NT 10.0.10586
gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Users\Thaem\Desktop\Coding projects\lagooner\node_modules\ref
gyp ERR! node -v v7.5.0
gyp ERR! node-gyp -v v3.5.0
gyp ERR! not ok
npm WARN<EMAIL_ADDRESS>requires a peer of erlpack@hammerandchisel/erlpack#master but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>No description
npm WARN<EMAIL_ADDRESS>No repository field.
npm ERR! Windows_NT 10.0.10586
npm ERR! argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "install" "node-opus"
npm ERR! node v7.5.0
npm ERR! npm  v4.1.2
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the ref package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs ref
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls ref
npm ERR! There is likely additional logging output above.

gyp ERR! stack Error: Command failed: reg query "HKLM\Software\Microsoft\MSBuild\ToolsVersions" /s /reg:32
gyp ERR! stack 'reg' is not recognized as an internal or external command,
gyp ERR! stack operable program or batch file.
gyp ERR! stack
gyp ERR! stack Can't find "msbuild.exe". Do you have Microsoft Visual Studio C++ 2008+ installed?

Do you? :)

I have it installed, yes.

Looking more into those 5 lines.. why isn't reg a recognized command?
Do you have system32 in your path?

I did not but I got a new error:
C:\Users\Thaem\Desktop\Coding projects\lagooner>npm install node-opus

<EMAIL_ADDRESS>install C:\Users\Thaem\Desktop\Coding projects\lagooner\node_modules\ref
node-gyp rebuild

C:\Users\Thaem\Desktop\Coding projects\lagooner\node_modules\ref>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\....\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "" rebuild )
build/binding.sln(1): Solution file error MSB5014: File format version is not recognized.  MSBuild can only read solution files between versions 7.0 and 9.0, inclusive.
gyp ERR! build error
gyp ERR! stack Error: msbuild failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:106:13)
gyp ERR! stack     at ChildProcess.emit (events.js:192:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
gyp ERR! System Windows_NT 10.0.10586
gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Users\Thaem\Desktop\Coding projects\lagooner\node_modules\ref
gyp ERR! node -v v7.5.0
gyp ERR! node-gyp -v v3.5.0
gyp ERR! not ok
npm WARN<EMAIL_ADDRESS>requires a peer of erlpack@hammerandchisel/erlpack#master but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>No description
npm WARN<EMAIL_ADDRESS>No repository field.
npm ERR! Windows_NT 10.0.10586
npm ERR! argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "install" "node-opus"
npm ERR! node v7.5.0
npm ERR! npm  v4.1.2
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the ref package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs ref
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls ref
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     C:\Users\Thaem\Desktop\Coding projects\lagooner\npm-debug.log

Have you checked what kind of a solution file your node-gyp generates?
build/binding.sln(1): Solution file error MSB5014: File format version is not recognized. MSBuild can only read solution files between versions 7.0 and 9.0, inclusive.

And maybe update Visual Studio. I was a bit surprised it asked for 2008, which is.. you know.. 10 years old. :)

Where would I find that file?
My visual studio is 2015 and the msbuildtools are 2013

path-to-node-opus/build/binding.sln
It's generated by node-gyp so it doesn't appear before you try to build node-opus.

I don't see the file. Does it delete itself after sometime or something similar?

Actually now that I'm looking at the error message even closer:
<EMAIL_ADDRESS>install C:\Users\Thaem\Desktop\Coding projects\lagooner\node_modules\ref
node-gyp rebuild

The error isn't even caused by node-opus but ref package instead.
So the bindings.sln is probably located in node_modules/ref/build

I looked in my node_modules and I couldn't find anything related to ref or the bindings.sln

I added system32 in my path and it started working fine!

This issue helped me: https://github.com/nodejs/node-gyp/issues/1754#issuecomment-502210409

Thanks, hopefully that helps the next person as well. Closing the issue due to inactivity.