Multicontrol Rz fix

Summary
I've currently written code to decompose multi control rotation gates properly (see issue 9202 ): QuantumCircuit.mcrz, QuantumCircuit.mcrx, QuantumCircuit.mcry
The update includes a new file in generalized_gates that for any given single qubit unitary matrix will generate a multicontrol quantum circuit of it using O(n^2) two qubit gates.
Details and comments
Currently there are problems with the unit tests. I think this could stem from the following:
from qiskit import QuantumCircuit, transpile
import numpy as np

angle = -np.pi/3
tt = QuantumCircuit(1)
tt.rz(angle, 0)

gg = tt.to_gate()

gg = gg.control(1, 'TEST', '1')

bb =  QuantumCircuit(2)
bb.append(gg, [0,1])

print(bb.decompose().decompose().draw())

>>
                                      ┌────────────┐
q_0: ──────────────■───────────────■──┤ U(0,0,π/6) ├
     ┌──────────┐┌─┴─┐┌─────────┐┌─┴─┐└────────────┘
q_1: ┤ Rz(-π/6) ├┤ X ├┤ Rz(π/6) ├┤ X ├──────────────
     └──────────┘└───┘└─────────┘└───┘

i.e. there is a relative phase in the gate decomposition that should NOT be there. I think the unit tests take this into account, when they should not. However, by correcting the codebase these tests then fail.
Note the updated code for  QuantumCircuit.mcrz builds the correct quantum circuits:
angle = -np.pi/3
vv = QuantumCircuit(2)
vv.mcrz(angle, [0],1)
print(vv.decompose().draw())

q_0: ──────────────■───────────────■──
     ┌──────────┐┌─┴─┐┌─────────┐┌─┴─┐
q_1: ┤ Rz(-π/6) ├┤ X ├┤ Rz(π/6) ├┤ X ├
     └──────────┘└───┘└─────────┘└───┘

How should I proceed?
Thanks for the help!
(side note) The MCU2Gate class allows arbitrary control single qubit gates to be built as follows:
from qiskit import QuantumCircuit
from scipy.stats import unitary_group
from qiskit.circuit.library.generalized_gates.multicontrol_arb_gate import MCU2Gate

ctrl_state = '110'
n_c = len(ctrl_state)
U = unitary_group.rvs(2) # random unitary

test_gate = MCU2Gate(U,
                n_c,
                ctrl_state)

nq = test_gate.num_qubits
IBM_c = QuantumCircuit(nq)
IBM_c.append(test_gate, range(nq))
IBM_c.draw()
>>
q_0: ───■────
        │
q_1: ───■────
        │
q_2: ───o────
     ┌──┴───┐
q_3: ┤ U(2) ├
     └──────┘

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

@javabster @jakelishman @1ucian0 - Thanks for your help during the qiskit office hours. It turns out the code still fails some unit tests even without the mcx functionality.

@alexanderivrii, @Cryoris (and @ShellyGarion, I think?): please could you two have a look at this?  Alexis came to the office hours earlier today and we talked about what he'd been working on, and in principle it all looks like something we're very interested in to me.
Sasha: for you, my questions are mostly about how you think it's best to organise the code in the short-term with other synthesis efforts going on.  I suspect that it's mostly ok to mirror the current style, since our hope is to more completely overhaul MCX/MCU/etc synthesis later.
Julien and Shelly: I think Julien you did the original (or most recent) implementations of the MC synthesis routines, and Shelly you're definitely more up-to-date on the literature and other methods than I am.

@alexanderivrii, @Cryoris (and @ShellyGarion, I think?): please could you two have a look at this? Alexis came to the office hours earlier today and we talked about what he'd been working on, and in principle it all looks like something we're very interested in to me.
Sasha: for you, my questions are mostly about how you think it's best to organise the code in the short-term with other synthesis efforts going on. I suspect that it's mostly ok to mirror the current style, since our hope is to more completely overhaul MCX/MCU/etc synthesis later.
Julien and Shelly: I think Julien you did the original (or most recent) implementations of the MC synthesis routines, and Shelly you're definitely more up-to-date on the literature and other methods than I am.

Thanks @jakelishman - to reproduce the McX code run the following:
from qiskit.circuit.library.generalized_gates.multicontrol_arb_gate import multiconrol_single_qubit_gate
from qiskit import QuantumCircuit, transpile
import numpy as np

X = np.array([[0,1],[1,0]])

for n_controls in range(2,10): # < -- change range for more controls!
    cqbits = list(range(n_controls))
    targ = cqbits[-1]+1
    nc = max(*cqbits, targ)+1

    ###
    diag_circuit = QuantumCircuit(nc)
    diag_circuit.h(targ) # change for Z to X basis
    diag = np.ones(2**nc)
    diag[-1]=-1
    diag_circuit.diagonal(diag.tolist(), [*cqbits, targ])
    diag_circuit.h(targ) # change for Z to X basis
    diag_circuit = transpile(diag_circuit, basis_gates=['cx','u'])

    ###
    custom_mcX = multiconrol_single_qubit_gate(X, cqbits, targ)
    custom_mcX = transpile(custom_mcX, basis_gates=['cx','u'])
    ##
    std_mcX = QuantumCircuit(nc)
    std_mcX.mcx(cqbits, targ, mode='noancilla')
    std_mcX = transpile(std_mcX, basis_gates=['cx','u'])

    ####
    print('N_controls:', n_controls)
    print('*'*10)
    print('DIAG :', diag_circuit.num_nonlocal_gates())
    print('NEW  :', custom_mcX.num_nonlocal_gates())
    print('OLD  :', std_mcX.num_nonlocal_gates())
    print()

This outputs the following (counts number of CNOT gates):
N_controls: 2
**********
DIAG : 6
NEW  : 10
OLD  : 6

N_controls: 3
**********
DIAG : 14
NEW  : 26
OLD  : 14

N_controls: 4
**********
DIAG : 30
NEW  : 50
OLD  : 36

N_controls: 5
**********
DIAG : 62
NEW  : 82
OLD  : 92

N_controls: 6
**********
DIAG : 126
NEW  : 122
OLD  : 188

N_controls: 7
**********
DIAG : 254
NEW  : 170
OLD  : 380

N_controls: 8
**********
DIAG : 510
NEW  : 226
OLD  : 764

N_controls: 9
**********
DIAG : 1022
NEW  : 290
OLD  : 1532

i.e. the diagonal approach should be used up to 5 controls and then the new decomposition after 6 controls

Hi @AlexisRalli. I'm not on the qiskit team, but I left some suggestions. The main one is that this PR could be separeted in two. One for the MCU2Gate class and another for multicontrolled rotations with few control bits.

can we close this PR as #9836 has been merged?

thanks @adjs for the review and https://github.com/Qiskit/qiskit-terra/pull/9836 !
@AlexisRalli, if you think https://github.com/Qiskit/qiskit-terra/issues/9202 is still not fixed or that https://github.com/Qiskit/qiskit-terra/pull/9836 is somehow incomplete, please open a new issue. If this PR has elements that are not covered by #9836, you can also open a new PR from a branch of AlexisRalli:multicontrol_rot_only_fix.
thanks!


Auto-completion not working when using NodePath from exported variable.

When using:
export(NodePath) var node

func some_func():
    get_node(node).node_method()

Auto-completion in Script Editor is not working while when using get_node("node_path_to_node") it is.

This is still valid in the current master branch (631cf67).

Still reproducible in 3.2.3 RC 1 and the current master branch.
But I don't know if this can be fixed at all, it's one thing to auto-complete NodePath resources (this works), but another thing to autocomplete get_node(NodePath) (i.e. the result of a function call on a known NodePath

Still reproducible in v4.2.rc.custom_build [fa4a65387].
However as mentioned before whether this can (or better should) be solved is unclear to me.

Theoretically, the since-added @export_node_path("Button", "TouchScreenButton") annotation should be able to narrow down the list of valid get_node results; unsure if it works in practice, however.

No doesn't work. There are currently two cases which are handled at separate functions.

get_node with constant path on the current scene -> we try to get the node if the scene is opened
everything else -> use the return type of get_node which is Node

That said, I think implementing type narrowing based on this annotation seems like a better idea than using the assigned value, since it does not depend on the scene.


Updated printer options to separate printing fragments from documents

@jeremyrsmith

Fixes #9
Minor breaking changes in snake API
Added printDocument and changed behavior of print
Minor touch-ups to build.sbt

Current coverage is 75.88% (diff: 62.50%)

Merging #10 into master will decrease coverage by 0.80%

@@             master        #10   diff @@
==========================================
  Files            12         12
  Lines           133        141     +8
  Methods         128        137     +9
  Messages          0          0
  Branches          5          4     -1
==========================================
+ Hits            102        107     +5
- Misses           31         34     +3
  Partials          0          0

Powered by Codecov. Last update 39e5464...b13ff75

LGTM 👍

@jeffmay with the latest changes in master, I don't think it's necessary to have printDocument; please reopen if you disagree

Cool. I think those changes will work for me. Thanks!


Support for multi_dot

Description
Per the NumPy docs, multi_dot is a convenience function to compute the dot product of multiple arrays with an optimized optimal order of operations determined by a cost calculation. For compatibility reasons, it would be nice to implement this API in CuPy (even without the optimized order of operations).
from numpy.linalg import multi_dot

# Prepare some data
A = np.random.random((10000, 100))
B = np.random.random((100, 1000))
C = np.random.random((1000, 5))
D = np.random.random((5, 333))

# the actual dot multiplication
np.testing.assert_array_almost_equal(multi_dot([A, B, C, D]), A.dot(B).dot(C).dot(D))

Additional Information
No response

Hi, this is listed in https://github.com/cupy/cupy/issues/6078 😄

Ah, thanks. It didn't come up when I searched for "multi_dot" but I should have known 😄
Closing as a duplicate.


heads up: swc fails to minify the package correctly

This is not a bug on the package side, but it can affect the users of it.
SWC (used by Next for production builds) minifies the package incorrectly. It inlines scanLineResult.end to 0 in the scanLine method body, resulting in an invalid left-hand assignment.
Check this SWC Playground.

Have you reported this with SWC? I don't, as a rule, want to modify my code to step around bugs in other software.

Of course, your policy makes sense, you need to keep your sanity. https://github.com/swc-project/swc/issues/7640.

Thanks for the heads-up, going to close this issue then.


2022-02-08-Websockets

As a follow up to #55, I'm adding a proposal for Websocket support. If this is not the right channel to do so, please let me know what's the official way of opening a proposal, as I don't see it in any of the docs, and I don't have the proposals folder when I forked the repo.
Find the filled proposal template below:

WebSockets
Metadata

Tag
Value

Proposal
2022-02-08-Websockets

Authors
Balazs Edes

Review Manager
TBD

Status
Proposal

Implementations
-

Issues
#55

Previous Revisions
-

Change Log

Date
Responsible Party
Description

2022-02-08
Balazs Edes
First draft created

Introduction
This proposal aims to make WebSocket api descriptions part of OpenAPI.
Motivation
Currently the OpenAPI standard is limited to describing what the http standard allows. More and more applications make use of WebSockets, which is a simple and standard way to build event driven systems, and runs in the most important platform end users see: the browser. Since there is demand for it, I propose to add the ability to describe WebSockets in OpenAPI schemas, as HTTP/WebSocket apis often complement each other.
There are other initiatives to describe event driven messaging (eg.: AsyncAPI), but in terms of maturity I haven't seen anything close to OpenAPI. AsyncAPI is also trying to acomplish a wide array of other goals which delay it's maturity further. Looking at the traction that #55 gained over the years, I think it would be a reasonable goal to add the ability to describe WebSockets in OpenAPI.
Proposed solution
This proposal aims to add a new WebSocket Payload Object type to the spec, and 2 additional fields to the Operation Object, publish and subscribe (better name suggestions are wellcome), that would allow us describing how to connect to a ws server, and what messages can we expect to receive or send.
Example
openapi: '3.3.0'
paths:
  /sample-socket:
    get:
      operationId: 'sampleSocket'
      publish:
        description: 'Short description about the messages you can push towards the server'
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CreateUserSchema'
                - $ref: '#/components/schemas/DeleteUserSchema'
                - $ref: '#/components/schemas/LikePostSchema'
      subscribe:
        description: 'Short description about the messages you can receive from the server'
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/UserCreatedSchema'
                - $ref: '#/components/schemas/UserDeletedSchema'
                - $ref: '#/components/schemas/PostLikedSchema'

Detailed design
The WebSocket spec is currently very simple. From our point of view it allows:

Connecting to an endpoint using a URL
Sending messages in either binary or text format
Receiving messages in either binary or text format

This proposal aims to allow OpenAPI users to describe exactly the above mentioned points:

What URL can I connect to, to talk to this WebSocket?
What's the format and shape of data I'm allowed to send
What's the format and shape of data I can expect to receive

Important: This OpenAPI spec proposal doesn't concern itself with any frameworks, or any higher level abstractions people usually build on top of event driven messaging protocols, like topics/subjects/channels, implied message serialization, etc. It simply describes the above mentioned 3 points, and any further abstractions can be built on top of this, but not part of the core schema.
Extension of the current OpenAPI spec

Add a WebSocket Payload Object type (very similar to Request Body Object, except the required field - which makes no sense here). It has the following fields:

description: string - A brief description of the payload.
content: Map[string, Media Type Object] The content of the payload.

Add an optional field in the Components Object type, so payloads can be reused:

webSocketPayloads: Map[string, WebSocket Payload Object] - Reuseable payloads

Add 2 optional fields on the Operation Object type:

publish: Reference Object | WebSocket Payload Object - describes the message(s) the client can publish/push to the server.
subscribe: Reference Object | WebSocket Payload Object - describes the message(s) the client can receive from the server.

Simple chat example
openapi: '3.3.0'
components:
  schemas:
    ChatMessage:
      type: 'object'
      required:
        - 'from'
        - 'to'
        - 'message'
      properties:
        from:
          type: 'string'
        to:
          type: 'string'
        message:
          type: 'string'
paths:
  /chat-using-socket:
    get:
      operationId: 'chatSocket'
      publish:
        description: 'You can publish chat messages to this server'
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatMessage'
      subscribe:
        description: 'You can expect chat messages from the server'
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserCreatedSchema'

Simple chat, but reusing payloads
openapi: '3.3.0'
components:
  schemas:
    ChatMessage:
      type: 'object'
      required:
        - 'from'
        - 'to'
        - 'message'
      properties:
        from:
          type: 'string'
        to:
          type: 'string'
        message:
          type: 'string'
  webSocketPayloads:
    ChatMessagePayload:
      description: 'A chat message payload'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ChatMessage'
paths:
  /chat-using-socket:
    get:
      operationId: 'chatSocket'
      publish:
        $ref: '#/components/webSocketPayloads/ChatMessagePayload'
      subscribe:
        $ref: '#/components/webSocketPayloads/ChatMessagePayload'

Multiple message types
Note since channels/topics/subjects cannot be expressed we can use a union type with a discriminator to mimic this.
openapi: '3.3.0'
components:
  schemas:
    CreateUserSchema: '...'
    DeleteUserSchema: '...'
    LikePostSchema: '...'
    PublishMessageSchema:
      discriminator:
        propertyName: 'action'
        mapping:
          CreateUser: '#/components/schemas/CreateUserSchema'
          CreateUser: '#/components/schemas/CreateUserSchema'
          LikePost: '#/components/schemas/LikePostSchema'
      oneOf:
        - $ref: '#/components/schemas/CreateUserSchema'
        - $ref: '#/components/schemas/DeleteUserSchema'
        - $ref: '#/components/schemas/LikePostSchema'
    UserCreatedSchema: '...'
    UserDeletedSchema: '...'
    PostLikedSchema: '...'
    SubscribeMessageSchema:
      discriminator:
        propertyName: 'type'
        mapping:
          UserCreated: '#/components/schemas/UserCreatedSchema'
          UserDeleted: '#/components/schemas/UserDeletedSchema'
          PostLiked: '#/components/schemas/PostLikedSchema'
      oneOf:
        - $ref: '#/components/schemas/UserCreatedSchema'
        - $ref: '#/components/schemas/UserDeletedSchema'
        - $ref: '#/components/schemas/PostLikedSchema'
paths:
  /sample-socket:
    get:
      operationId: 'sampleSocket'
      publish:
        description: 'Short description about the messages you can push towards the server'
        content:
          application/json:
            schema:
              - $ref: '#/components/schemas/PublishMessageSchema'
      subscribe:
        description: 'Short description about the messages you can receive from the server'
        content:
          application/json:
            schema:
              - $ref: '#/components/schemas/SubscribeMessageSchema'

Backwards compatibility
As this change is additive (nothing is removed or modified in a non-backward compatible way) I don't see any backward compatibilty issues.
Alternatives considered
There can be many alternatives, my motivation was to add support for WebSocket api descriptions, while

Adding as few new concepts as possible
Allowing reuse the same way as with all other parts of the schema, through $refs
Just describing what the standard allows (no frameworks)
Not causing any breaking changes or backward compatibility issues
I'm happy to take onboard any suggestions, alternatives, modifications to this! I'm sure there are many things I haven't thought of.


Advanced compression controls

Exposes advanced DEFLATE compression options. Supersedes #488, fixes #349.
Also adds an option for store-only compression, like #490, but without a semver break.
Expands roundtrip tests to cover more compression modes.
Motivation
I am going to need this in wondermagick. I'll have to roughly match imagemagick's own compression levels using controls over both filters and DEFLATE compression level.
Why this API?
The API we have right now is a mix of high-level and low-level concepts. We only have a limited selection of DEFLATE compression levels, but also expose the full complexity of filter selection to the user without any heuristics and requiring the user deal with it.
Ideally we'd expose a high-level API with a few simple presets that take care of both DEFLATE and filtering, plus a separate low-level API that exposes the full complexity of DEFLATE and filtering options for users who do need it, such as wondermagick.
Evolving Compression to set the filter as well is an API break, but we can add the low-level API in a semver-compatible way, which is what this PR does.
Semver and longevity
This API it can be easily evolved later: new modes can be easily added since the enum is marked #[non_exhaustive], and removed modes can be marked #[deprecated] and mapped to the closest thing we do have.
The only observable change in behavior is converting from Info to PartialInfo and back will reset the compression field since it gets lowered to the advanced representation now, and that field is public. If that's an issue, I can make PartialInfo preserve the original compression setting.

PR for a nicer high-level API I mentioned in the description is now up: #503

We're doing semver-breaking changes now anyway, so I'm going to close this in favor of #503 which includes all of this and more.


[WIP] Broadcast immediately after mining

:x: Build AElf <IP_ADDRESS>4 failed (commit https://github.com/AElfProject/AElf/commit/675dea085b by @zhxymh)

:white_check_mark: Build AElf <IP_ADDRESS>79 completed (commit https://github.com/AElfProject/AElf/commit/cebd35efeb by @zhxymh)


How to change the Bar charts Tooltips arrow pointing ?

TODO:

Environment

Chart.js version: 2.6.0
Browser name and version: Chrome 59.0.3071.86

There are no options exposed to do this. The alignment of the tooltip (and hence where the arrow points) is determined in https://github.com/chartjs/Chart.js/blob/master/src/core/core.tooltip.js#L262

thanks, it works !


[Refactor][meta-format-change]Change backup/restore job to json format

Fixes #issue
What type of PR is this:

[ ] BugFix
[ ] Feature
[ ] Enhancement
[x] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto-backported to the target branch

[ ] 3.0
[ ] 2.5
[ ] 2.4
[ ] 2.3

[FE PR Coverage Check]
:heart_eyes: pass : 101 / 121 (83.47%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/server/GlobalStateMgr.java
0
1
00.00%
[1429]

:large_blue_circle:
com/starrocks/journal/JournalEntity.java
0
6
00.00%
[343, 344, 345, 353, 354, 355]

:large_blue_circle:
com/starrocks/backup/Repository.java
7
15
46.67%
[719, 720, 722, 730, 731, 732, 733, 737]

:large_blue_circle:
com/starrocks/persist/EditLog.java
1
2
50.00%
[1425]

:large_blue_circle:
com/starrocks/backup/RepositoryMgr.java
3
5
60.00%
[172, 173]

:large_blue_circle:
com/starrocks/backup/BackupHandler.java
22
24
91.67%
[702, 703]

:large_blue_circle:
com/starrocks/persist/gson/GsonUtils.java
67
67
100.00%
[]

:large_blue_circle:
com/starrocks/backup/BlobStorage.java
1
1
100.00%
[]

[FE PR Coverage Check]
:heart_eyes: pass : 101 / 121 (83.47%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/server/GlobalStateMgr.java
0
1
00.00%
[1439]

:large_blue_circle:
com/starrocks/journal/JournalEntity.java
0
6
00.00%
[343, 344, 345, 353, 354, 355]

:large_blue_circle:
com/starrocks/backup/Repository.java
7
15
46.67%
[719, 720, 722, 730, 731, 732, 733, 737]

:large_blue_circle:
com/starrocks/persist/EditLog.java
1
2
50.00%
[1425]

:large_blue_circle:
com/starrocks/backup/RepositoryMgr.java
3
5
60.00%
[172, 173]

:large_blue_circle:
com/starrocks/backup/BackupHandler.java
22
24
91.67%
[702, 703]

:large_blue_circle:
com/starrocks/persist/gson/GsonUtils.java
67
67
100.00%
[]

:large_blue_circle:
com/starrocks/backup/BlobStorage.java
1
1
100.00%
[]


allow either mapnik 3.x or 4.x

no longer needed after https://github.com/mapbox/makizushi/commit/8ffaa0415d78439d79ab3108ae36f845c789d475


feat: Preprocessor can return Promise

Similar that mocha support like you can execute done or return Promise

:white_check_mark: Build karma 2407 completed (commit https://github.com/karma-runner/karma/commit/2c80f8e24c by @anthony-redFox)

:white_check_mark: Build karma 2409 completed (commit https://github.com/karma-runner/karma/commit/47c2de6151 by @anthony-redFox)


Efficient route generation for tasks

Currently the task list is naively sorted such that more overdue tasks appear first. If a pathfinding algorithm for tasks is to be implemented, it could potentially make farming more time efficient. Unfortunately this is an instance of TSP which is an NP-hard problem.
I tried implementing the simulated annealing algorithm but ended up with a big mess. Maybe it was not a suitable algorithm for this problem. Opening this issue to see if anyone is interested in tackling this.
Successful initial implementation must account for teleports as weight=0 unidirectionally. Elevation and water consideration is an added bonus (there are no geo data for these though).

I had read the wiki on the merchant problem and if you can resolve it and make it in the site it will be awesome. But instead of making things complicated, I have maybe a simple idea. I known nothing of database and programming but every gamer have their route with they are familiar. So instead of the above solution of the perfect rout, why we don't do it how "Pozolo" suggested in the "Possible improvements on Today's Task and Map" issue?

We can mark a task as parent, and the other task if marked as child can select ONLY the task marked as parent. Sorry for my english and thank you for your work.


Update github-event-processor version to 1.0.0-dev.20231010.2

github-event-processor was recently updated to remove the CXPAttention rule but the Rules constant was left in the code.  The constant was removed with this PR which, after merging, runs the pipeline and publishes the tool to the NET dev feed. This PR simply updates the version being installed and will push the changes out to the other repositories.

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow


Button on resource with custom indexQuery with grouped results failed

Hello,
I have built a custom resource page and want to attach your button to link to a controller (or anywhere really). I am getting a 404 not found error because resourceId is null :
/nova-vendor/nova-button/<resource name>/null/text 404 (Not Found)
resourceId is null because each row on this resource is a group of a bunch of rows combined together (i.e. 10 Cars of this model).
Is there a workaround to this dependency? For example I cant even use the button to create a link to an external website because of this dependency.

Right now if I change this line in src/Http/Controllers/ButtonController.php from :
$resource = $request->findModelQuery()->firstOrFail();
to :
$resource = $request->findModelQuery()->first();
The issue doesnt happen anymore


33 - Expand on apps/test_app.py, to create a functional test using Models.

Sorry it took a while, hit a couple of issues of the weeknd when running the tests kept on getting error/not_found errors as i was running the tests alongside a running doker instance :facepalm:.
I've added a new issue for  casting to a model. #175 Whiich i'll pick up next.

Looks good! Please squash the commits when you merge


MSID: 87510 Version: 2 DOI: 2<IP_ADDRESS>5330

[PLACE MANUSCRIPT AND EDITOR DETAILS HERE WHEN AVAILABLE] See step 3
[PLACE PDF URL HERE WHEN AVAILABLE] See step 7
Step 1. Inform bioRxiv
Who can help: @QueenKraken, @nlisgo, @scottaubrey

[x] Manuscript is in data hub index (https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v1/by-publisher/elife/get-by-manuscript-id?manuscript_id=87510)

Step 2. Create preview of manuscript
Who can help: @fred-atherden, @nlisgo, @scottaubrey

[ ] Manuscript is available for preview (https://prod--epp.elifesciences.org/preview/87510/v2)

[ ] Trigger import for staging: https://prod--epp.elifesciences.org/import
[ ] Sync data folder with s3://prod-elife-epp-data/data
[ ] Trigger import for staging: https://staging--epp.elifesciences.org/import
[ ] Sync data folder with s3://staging-elife-epp-data/data
[ ] Pull request created to enhanced-preprint-data
[ ] Post link to pull request below

Pull request: [PLACE LINK TO PULL REQUEST HERE]
Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-manuscript
Step 3: Awaiting public reviews and QC
Who can help: Production team

[ ] QC passed or QC not needed

Who can help: Editorial team

[x] Public reviews available on sciety (https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>5330)
[ ] Manuscript and editor details at the top of this issue (Supplied by Editorial team)
[ ] Reviews returned by EPP - https://prod--epp.elifesciences.org/api/reviewed-preprints/87510/v2/reviews

Example
"msas": "Genetics and Genomics", "Neuroscience"
"msid": "84628"
"version": "1"
"preprintDoi": "10.1101/2<IP_ADDRESS>4241"
"articleType": "Reviewed Preprint"
"status": "Published from the original preprint after peer review and assessment by eLife."

"Reviewed Preprint posted": "2023-01-02"
"Sent for peer review": "2022-10-28"
"Posted to bioRxiv": "2022-11-21" (link: "Go to bioRxiv": "https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>4241v1")

Editors:
Reviewing Editor
Michael B Eisen
University of California, Berkeley, United States
Senior Editor
Michael B Eisen
University of California, Berkeley, United States

Step 4: Modify manuscripts.json (no PDF)

[ ] Reviewed preprint is published to EPP (https://elifesciences.org/reviewed-preprints/87510)

[ ] Pull request created to enhanced-preprint-client
[ ] Pull request switched to "Ready for review"
[ ] Post link to pull request below

[ ] Request that a doi be registered

[ ] Post link to #enhanced-preprint comment below

Pull request: [PLACE LINK TO PULL REQUEST HERE]
#enhanced-preprint comment thread: [PLACE LINK TO COMMENT HERE]

Instructions to modify manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/publish-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/334/files
Once the pull request is merged in it should be available a few minutes later.

Request that a doi
Post the following in #enhanced-preprint:
@Fred can you register a doi for https://elifesciences.org/reviewed-preprints/87510

Step 5: Awaiting search reindex

[ ] Reviewed preprint is avaliable on journal homepage (https://elifesciences.org)

The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.

Additional info
If needed, the jenkins pipeline to reindex search can be triggered sooner.
https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 6: Published! Request PDF generation

[ ] Post the link to the PDF url at the top of the issue

[ ] Post link to #enhanced-preprint comment below

#enhanced-preprint comment thread: [PLACE LINK TO COMMENT HERE]
Post the following to the #enhanced-preprint on slack:
@Ryan Dix-Peek please can you generate a PDF for https://elifesciences.org/reviewed-preprints/87510

Step 7: Introduce PDF to data folder and git repo

[ ] PDF is avaliable at https://github.com/elifesciences/enhanced-preprints-data/raw/master/data/87510/v2/87510-v2.pdf

Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-pdf
Step 8: Add PDF url to manuscripts.json

[ ] Reviewed preprint PDF is available for download (https://prod--epp.elifesciences.org/reviewed-preprints/87510)

[ ] Pull request created to enhanced-preprint-client
[ ] Pull request switched to "Ready for review"
[ ] Post link to pull request below

[PLACE LINK TO PULL REQUEST HERE]

Instructions to add PDF url to manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/add-pdf-url-to-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/397/files
Once the pull request is merged in it should be available a few minutes later.

Step 9: Done!

[ ] Kettle is on!

Min Yan is missing correspondence email, although this is because of formatting errors in the PDF, in addition, supplementary materials not shown as these are in a seperate PDF on bioRxiv

Nicely done @rkcook312. Are you OK to reach out to the authors about this? I think they aren't marked as corresponding because they are missing the asterisk in their original PDF. They'll probably need to post a new version of the preprint with that corrected if they want Min Yan marked as corresponding.

@rkcook312 have you heard back from the authors of this one at all? I can't see a new version for this on bioRxiv. Would you be OK to chase the authors up?

@fred-atherden not received a response yet, i'll chase them up

Thanks!

It looks like the authors submitted a revised version (RPv3) on the 23rd. Perhaps they misunderstood our request, or were planning on submitting a revised version anyway.
I think we'll need to add an xsl to fix the version we have instead otherwise it'll get confusing.


corrected amount decimalPlaces logic

While invoking createTransfer method for transferring native SOL and SPL tokens, the logic which checks whether the amount provided has greater precision than the SOL/mint or not (line 119 & line 148 of core/src/createTransfer.ts) will always throw CreateTransferError('amount decimals invalid') error even if we provide the amount value which is less than 9 decimals (eg. 0.5 or 1.00254) because the logic "(amount.decimalPlaces() ?? 0 > SOL_DECIMALS)" will always be True for any decimal values (whether it be less than 9 decimal (eg. 0.08) or greater than 9 decimal (eg. 0.0021547854).
Adding parenthesis to the logic like so would solve this.

Thanks for the description of the issue! Could you remove the core/app stuff from the PR though?

Copy that.. anything else sir?

Thanks, much easier to review now. It looks like this fix is needed in a few more places though:
https://github.com/solana-labs/solana-pay/search?q=decimalPlaces&type=

Thanks a lot, sir !


Setup and attaching 10 new Pixel phones onto Linux machine from hostname linux-37..46 in the Device Lab.

Setup and attaching 10 new Pixel phones onto Linux machine from hostname linux-37..46 in the Device Lab.

All 10 Pixel phones are connecting to all Linux machines hostname=linux-37..46.


Google auth provider redirects to AAD

Describe the bug
I am trying to implement custom authentication by following this steps Custom authentication in Azure Static Web Apps. But when ever I call
/.auth/login/google but it redirects to Microsoft login page (https://login.microsoftonline.com/common/oauth2/v2.0/authorize?response_type=code+id_token)
This is my settings in staticwebapp.config.json
Screenshots

Expected behavior
It should redirect me to Google auth page where I can give my consent to login using google account.

I found the issue, its because I was using Free version but after changing to Standard version custom authentication stars working.


Offer a boxed string by default?

It'd be interesting to see under what situations box might be useful.

I played with a box but couldn't find a reason to add it. Allocation seemed about the same (I may need to revisit and check again in light of your benchmarks), but clone is slow given the allocation/copy. Also, this is kinda the antithesis to FlexStr which is about fast clones and not needlessly copying data.

I also should add you can do this on your own. This was my example in the "make your own string" section. If you can give me a use case I'm not against adding necessarily either, but need to see a use case where it outperforms Arc

I'd recommend reconsidering.  The cost of a Box option is fairly low for maintenance / documentation.  A big benefit is it'll help the user selecting the option that works for their benchmarks.   I'm thinking of this from the perspective of re-evaluate what strings to use in toml_edit.  Profiling is what led me to use small-string optimization.  I'm going to be profiling what crate and crate settings work best for my application.  I'll want to evaluate this option but having to make my own gets in the way of doing so and sours me a bit on the crate.

So your use case is that you've found Box to allocate faster than Arc? Just want to understand the driver.

The biggest issue I'm having is one of identity. Right now LocalStr and SharedStr are a pair and I plan to release optimizations to go back and forth. If I add a 3rd it would be "one the side" and not integrated into the overall scheme. Plus I'm trying to find the "why" - none of my benchmarks showed it made sense, so I'm looking for what Box does better. I want to reproduce your benchmarks because mine didn't show an advantage.

I'm thinking back to when I first tried FlexStr in toml_edit and it was slower.  That might have been other factors but I'll want to double check Box vs Arc to be sure.
Keep in mind, this is giving users the opportunity to evaluate against their own applications.  I can't do that to show its faster without implementing it myself which I have no incentive to do, making this circular.

FlexStr 0.8.0 had alignment issues due to the enum. That made it's performance inconsistent. Mostly it seems in inline strings but I can't seem to nail it down. 0.9.x doesn't have that issue - it is very fast for many ops.

Yes, that could be it but it introduced enough doubt.  In part, I filed all of these issues thinking about Josh's comment about what I would suggest.  I suspect FlexStr is getting close to one I might generally suggest but I have various doubts or use cases so I filed these.

I appreciate that. I'm interested in getting use and willing to do the work, so let me know what you need. I argue because I want to understand the 'why'. I usually get there even if not right away. :-)

I definitely agree about seeking the "why"
Another one I just remembered on top of the previous ones I gave, when I pulled kstring into toml_edit, I benchmarked the various feature flags to see what would get the best performance.  In my test cases, Arc was slower and I didn't enable it.
See https://github.com/ordian/toml_edit/blob/master/Cargo.toml#L44

I would be interested to hear how you used it. In my benchmarks Arc and Rc are slightly slower than String on allocation (like 5-10% tops) and are much faster on clone. The only thing I didn't test yet (and it is important) is contended cloning of Arc in multiple threads. Real world might be different of course and sounds like it might be.

toml_edits easy API is a fairly low-clone situation.  You basically allocate the memory to then turn around and give it back to the user in their preferred data type via serde (we care more about the performance of this API than the editing API).
Yes, the focus of flexstr is on the cloning case but adding box support would make it more universally usable.  There would be less need to have a user pick and choose which crate to use in which situation.

Fair points - really it is as easy as me adding this:
type BoxStr = FlexStrBase<Box<str>>;


Feature/refac

Started PR for discussion purpose.
do not merge

"Dynamic" script loading works as follows: the first trigger sets a flag (2501, arbitrary number) that can be either 1, 2, or 3
If the flag is set to 1, then the standard 000_TRMT.lua included in the MIZ file is loaded.
If the flag is set to 2, then Entropy's TRMT is loaded from the disk every time mission start.
WARNING @132nd-Entropy I don't know where your file is located, you'll have to set the path (once) in the trigger named "TMT script - Entropy"
If the flag is set to 3, then etcher's TRMT is loaded from the disk every time mission start.
How to use it
Every time the mission start ( = is unpaused), the TRMT script gets dynamically loaded from the disk, one doesn't have to constantly update the script inside the MIZ.
Start the mission, unpause, debug, quit, click "Fly again" and you're set.
Why not use the F10 menu to reload the script ?
Some values in CTLD, MOOSE and MIST are persistent. It would be hell to manage everything that needs to be reset, and it's a much safer way to just reset the mission entirely.
Danger area
Don't forget to reset the flag to 1 when you're done before you push on GH !


JavaCC - scripts, documentation and git patches

We use JavaCC for generating our Java code for the SPARQL parser.
It would be nice with:

some documentation
a script for automation
a way to handle changes we need to make to the generated Java code

From @jeenbroekstra

We should do several things:

create a patch file with this specific fix, so that we can reapply on the generated code after rerunning javacc. I suggest separate patch files for each specific fix.
add info in a readme file on the how/why of the fix. This is necessary to help fix if the patch file no longer applies without problems (e.g when we bump javacc versions).

I will try and make a start on this somewhere this week.

large-method-jvm-C2-compiler-patch.diff.zip
Here is a patch for the changes I made. Github doesn't like .diff files, so I had to zip it.


Use Mesos task labels to tag requests

Mesos 0.22 introduced task labels as a way of adding metadata to tasks.
It would be useful to be able to tag the requests in Singularity (and therefore the tasks that are spawned from its deploys) during their creation (and even afterwards). Possible use-cases would be monitoring, load-balancing or any external system that could need to select tasks by arbitrary metadata.
As far as I know, the only way to do that with Singularity would be to encode those metadata into the request name, making for rigid (and long) IDs.
Is such a feature planned or being discussed?
Regards.

We already support setting labels in the API (via #657 -- the labels field in SingularityDeploy), but labels currently do not affect task scheduling decisions or are surfaced in the UI. We can look into adding them.

Oh, I did miss that in the docs.
However, when I set my labels with the following:
{
  "deploy": {
    "requestId": "demo-rec",
    "id": "4",
    "arguments": [
    ],
    "env": {
      "ENV": "staging",
      "PORT": "3000"
    },
    "containerInfo": {
      "type": "DOCKER",
      "docker": {
        "image": "my/image:latest",
        "privileged": false,
        "network": "BRIDGE",
        "portMappings": [
          {
            "containerPortType": "LITERAL",
            "containerPort": 3000,
            "hostPortType": "FROM_OFFER",
            "hostPort": 0
          }
        ]
      }
    },
    "resources": {
      "cpus": 0.1,
      "memoryMb": 16,
      "numPorts": 1
    },
    "uris": [
      "file:///etc/docker/repo.conf"
    ],
    "labels": {
      "lorem": "ipsum",
      "tags": "one,two,three"
    }
  }
}

The mesos task does not seem to be populated with them, this is what I get from /master/state.json:
"labels": [
[...]
  {
    "key": "Docker.NetworkSettings.IPAddress",
    "value": "<IP_ADDRESS>"
  }
],
[...]

Am I setting the labels properly in my deploy definition?

I'm guessing I am, since the labels are reported back in Singularity API on that request's active deploy.
Are Singularity's labels not designed to bubble up all the way to the corresponding Mesos task?

Hey, thanks for pointing this out. I had honestly thought I wired this up when we moved to 0.23, but I guess I missed it. Fixed in #824 once I test and get it merged in

@apognu task label fix has been merged to master


Drone: add separate build for pull requests

These changes adapt the deployment workflow to the one we decided last week.

Regarding the name of the steps, I added the environment as a suffix for those steps that were part of a deployment, in order to differentiate where it would be deployed to. I'd keep the other steps as generic as possible, since later we could want to execute them upon different events (pushes, for instance).
About the code repetition, I don't like it neither. Drone does not provide any way to re-use code.
I actually agree that, ideally, a proper image to build the project should be provided and drone just use it.

@smeruelo ready to merge?

Yes, please :+1:


Run in Fullscreen

Godot version: 3.1.1.stable.official
OS/device including version: windows 10
Issue description:
There are 2 monitors in my system
First      1920x1080
Second 1280x1024
When I run a project in Fullscreen, it runs on the first monitor with the resolution of the second.
with a gray line at the bottom
Stretch settings "viewport"or "2d" do not affect the result.

Probably related to #20618

Probably need for a new feature in Godot.
To prevent this, a compiled application must be able to determine which monitor it is running on and its parameters.

Duplicate of #21746.

To prevent this, a compiled application must be able to determine which monitor it is running on and its parameters.

This is already possible, see OS.current_screen and the associated OS.get_screen_* methods.

Duplicate of #21746.

To prevent this, a compiled application must be able to determine which monitor it is running on and its parameters.

This is already possible, see OS.current_screen and the associated OS.get_screen_* methods.

This is configurable in the project settings. The compiled program does not run with values from the project settings. I think this is a mistake, but you can have your own opinion.


Update session.md

Proposal for a warning that Multi Sessions can not be used together with Lazy Sessions

Closing due to inactivity.


Consider allow viewing values of a single observation

@llhouse2 brought this up during the QUEST presentation day.

Previous versions enable you to hover over an observation and, in the slider bars, we see a point on every slider that represents where the observation faills in the variable. Points that appear near the left suggest the observation is low in the variable and points that fall near the right, suggest that the obsevation is high in the variable...

More details about this request:

... bring a feature back to andromeda that helps users explain the space.   As you know, Dan directed students to try to define the space based on where images fell.  But, another way is to enable users to hover over a point or points to see where it (they) falls relatively on all of the sliders; where it(they) falls gives an impression of whether the data point(s) is high in some variables, low in others, and in between for the remaining.  I attached an OLD screenshot to explain.  Notice the mouse is hovering over a point; the point turns  blue.  Also  notice the dots in all of the sliders.  These dots represent the value this observation has in the variables, relative to the remaining data.   For example, this observation has a really high shoe size: the max or near the max shoe size for this dataset.  This observation also has few friends, relative to the remaining observations; and falls near the median of the data for love of Spicy food.

Example screenshots showing indicators on top of the sliders when the mouse is giraffe vs blackRhino:

Images created using hover-details branch with questAnimalDataV2.csv.


go/build: Default.Import fails for standard-library packages when built with -trimpath

What version of Go are you using (go version)?

$ go version
go version devel go1.19-81767e23c Fri Mar 4 01:18:57 2022 +0000 linux/amd64

Does this issue reproduce with the latest release?
Yes.

Execute go run for the following program, with or without -trimpath.
-- go.mod --
module example

go 1.19
-- main.go --
package main

import (
	"go/build"
	"log"
	"os"
)

func main() {
	p, err := build.Default.Import("runtime", "", build.FindOnly)
	if err != nil {
		log.Fatal(err)
	}
	os.Stdout.WriteString(p.Dir)
}

What did you expect to see?
Successful output in both cases: go/build already falls back to go list in some cases, and go list knows where to find its own GOROOT.
 It is broken in more cases than just -trimpath.


Naming improvements

As suggested by Trevor (@trevp), NoiseBuilder name is a bit off, as it's the main interface of the library.
Additionally, ed25519 and ed448 shall be renamed to x25519 and x448 respectively.
Filenames could be a little bit more explicit on their contents (e.g. "functions.py", "crypto.py" and "state.py")

Instead of NoiseBuilder, maybe NoiseConnection or NoiseSession?
The filenames seem less important, since they're not really part of the API.


remove quote thats not a quote from shortcode

overview

we should not be using quote styling for things that are not quotes, this removes it and uses the note styling instead
note that we are repeating the note definition because you cannot use a shortcode inside of another shortcode definition

note to reviewers: i don't believe you will be able to preview this anywhere until it gets to the docs

@djgrove would you be up for adopting this pr and trying it out?

Yep, best of my knowledge, that's right @djgrove. You can do this:
In some-markdown-file.md:
...
{{< some-shortcode >}}
    {{< some-other-shortcode >}}
{{< /some-shortcode >}}
...

.. but you can't do this:
In some-shortcode-html:
...
{{< some-other-shortcode >}}
...

So IMO, what susan has here is 👍 .

i don't believe you will be able to preview this anywhere until it gets to the docs

@susanev I thought about maybe adding a reference to this repo's config to make it possible to see registry content in it, but just never got around to it. Would that be helpful? If so, it'd be a pretty quick thing to add.

@cnunciato it would be useful to me, but we should maybe wait until it becomes useful to more than just me

Good to know. It'd actually be useful to me too -- I always grumble when I navigate to /registry and don't see anything useful. So maybe I'll throw something together for it. Thanks!


FI-1390 radio button input

Adds option to include radio button inputs in the inputs modal. Also updates the demo group tests.

Codecov Report

Merging #70 (8d2a1ce) into main (5c1d33a) will increase coverage by 0.05%.
The diff coverage is 100.00%.

:exclamation: Current head 8d2a1ce differs from pull request most recent head 5c1224b. Consider uploading reports for the commit 5c1224b to get more accurate results

@@            Coverage Diff             @@
##             main      #70      +/-   ##
==========================================
+ Coverage   94.39%   94.45%   +0.05%
==========================================
  Files          92       92
  Lines        2141     2146       +5
==========================================
+ Hits         2021     2027       +6
+ Misses        120      119       -1

Impacted Files
Coverage Δ

dev_suites/dev_demo_ig_stu1/demo_suite.rb
100.00% <100.00%> (ø)

dev_suites/dev_demo_ig_stu1/groups/demo_group.rb
93.69% <100.00%> (+0.17%)
:arrow_up:

lib/inferno/dsl/configurable.rb
98.33% <0.00%> (+1.66%)
:arrow_up:

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 5c1d33a...5c1224b. Read the comment docs.

Just noticed you need to update docs/swagger.yml as well!  :)


Use core Range for interval checks

We should use Range for interval checks, given their nature to reduce chances of error for repeated checks, and will cause no overhead due to their efficient implementation
They are also idiomatic to Rust and expected in many libraries and trait implementations
Originally posted by @vlopes11 in https://github.com/maticnetwork/miden/pull/526#discussion_r1027853113

Can I work on this issue if it's not a priority right now?

Yes, that would be awesome! I'll assign it to you.

Hi @amankrx, how is the progress going with this issue? If you need help/clarification with something, don't hesitate to ask. Thanks for the contribution!

Hey, There were a lot of places where we had to implement the Range queries. So, it took a little bit of time to check all of that. Also, my exams were going on in the meantime, so I asked about the priority for this issue initially. Nevertheless, I will put an initial draft asap.

@amankrx thank you! And take your time. One thing I want to note: the scope of this should be limited to the assembler - no need to go beyond that.

Closed by https://github.com/0xPolygonMiden/miden-vm/pull/595


Thomas from Obol's issues

Quick other feedback piece when trying to add projects

Previous project details load while it has already been registered
I get prompted to sign the registration even if not click on the button at regular intervals
It can take time for the project to appear on on the review page so might be worth adding a disclaimer to avoid people logging it twice. It could be worth checking for duplicates

Fixed in 23312ff5259ba5680798ec615be11efd7de7c58b


Error when deserialising BSON containing an array as the root element

Details of the error on stackoverflow: http://stackoverflow.com/questions/17320921/deserialise-array-of-bson-objects-as-root-object-in-java
In short I get a Can not deserialize instance of x out of START_OBJECT token when using an array as the root element of a document. The equivalent JSON object would look like this:
[{"id":....},{"id":....},{"id":....}....]

Can this be changed to work on arrays as root elements?

Is this issue closed?
ObjectMapper bsoner = new ObjectMapper(new BsonFactory());
// from is bson from an array [Object, Integer, Boolean]
JsonNode node = bsoner.readTree(from);
JsonNodeType type = node.getNodeType(); //type should be ARRAY, now it is OBJECT.

I checked the value of node, it is an object with integer key:
"0" -> item 0 of array
"1" -> item 1 of array
"2" -> item 2 of array
I'm using jackson 2.7.3 and bson4jackson 2.7.0.
I do think the inner implementation of bson4jackson does not follow all jackson standard. Can someone give a tip, just like how should I fix it?
Thanks for the product.


Add AsyncWrite variants

Description
Adds implementation of AsyncWrite wrapping encoder and decoders to round out the likely usecases.
(Has been rebased and based on abstraction from #34, so blocked on that merging first).

Motivation and Context
For some usecases you may have an AsyncWrite that you want to automatically compress/decompress as you write to.

How Has This Been Tested?
Tests added.

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

bors r+


LIBFCREPO-255. Use tokenized fields for facet.

https://issues.umd.edu/browse/LIBFCREPO-255

@mohideen Does this require a reindex?

@mohideen I am getting the following error when I try running the updated app locally (rails s):
RSolr::Error::Http - 400 Bad Request Error: 'undefined field: "object_type_not_tokenized"','code'=>400}} URI: https://solrlocal:8984/solr/fedora4/search?wt=ruby&facet.field=author_not_tokenized&facet.field=type&facet.field=object_type_not_tokenized&facet.field=component_not_tokenized&facet.field=rdf_type&&&fq=is_pcdm%3Atrue&&rows=10&facet=true&sort=score+desc%2C+display_title+asc

@mohideen Works with the updated fedora4-core and a reindex.


tx bad instruction

Hello my tx 0x6275e41d5bd372e03a0473f13a651f7ef9107eb2b180fe0b87557d015609f4d5
was cancelled:
Warning! Error encountered during contract execution [Bad instruction]
but ether was not refunded. Could you please to help me to get it back?

This is not the right place to ask for help with the Tezos crowdsale.


Nice to have a configurable id generation strategy for DocumentIdAdder post processor

The id field is filled by the configured document id generation strategy, which can be one of the following:
-Java UUID - (default)
-Kafka meta-data - comprised of the string concatenation based on [topic-partition-offset] information
-Provided in key - expects the sink record's key to contain an id field which is used as is (error if not present or null)
-Provided in value expects the sink record's value to contain an id field which is used as is (error if not present or null)
The strategy is set by means of a configuration property
cosmosdb.document.id.strategy
Further strategies can be easily implemented based on the IdStrategy interface
All custom strategies that should be available to the connector can be registered by specifying a list of fully qualified class names for the following configuration property:
cosmosdb.document.id.strategies=…
It's important to keep in mind that the chosen / implemented id strategy has direct implications on the possible delivery semantics. Obviously, if it's set to UUID respectively, it can only ever guarantee at-least-once delivery of records, since new ids will result due to the re-processing on retries after failures.
The other strategies permit exactly-once semantics if the respective fields forming the document id are guaranteed to be unique in the first place.

Related to #17


add patch pv ci test

Codecov Report

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

@@            Coverage Diff            @@
##             master     #372   +/-   ##
=========================================
  Coverage          ?   46.69%
=========================================
  Files             ?       26
  Lines             ?     2998
  Branches          ?        0
=========================================
  Hits              ?     1400
  Misses            ?     1496
  Partials          ?      102

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 90ca22d...19b174c. Read the comment docs.


Test

this failed with a very odd build error:
https://github.com/probot/example-github-action/actions/runs/3561128703/jobs/5981756786
we probably need to update the source code to latest and update the dist files, then try again.


Mobile: Customizing the Switch Button

Worked on Customizing Switch button to change theme during runtime

Worked on Customizing Switch button to change theme during runtime


Parent require error when requiring react-engine

var client = require('react-engine').client;
Using browserify to bundle client side and run in the browser I get this error:
Cannot find module 'express/lib/view' from parent from https://github.com/paypal/react-engine/blob/9000adad4b7ea694b6aa6155fdef2cbe4f134a53/lib/expressView.js#L24
Any ideas?

Think I solved it with browserify's require option: -r express/lib/view

@ethersage you can import like below to avoid inclusion of unwanted files.
var ReactEngineClient = require('react-engine/lib/client');


Ios use_frameworks! :linkage => :static compatibility

Since I am using Firebase in my project, I need to build my app with static frameworks.
After I run into some build issues, changing the dependencies and imports, this seem to work.
Since I'm not too familiar with ios development... is there is a cleaner way to achieve this?
Thanks for your work so far!

I just put like this:   pod 'Firebase', :modular_headers => true


chatflow icon doesn't show on firefox browser in the installed packages in packages page

blocked on: https://github.com/threefoldtech/3Bot_connect/issues/178

same on vivaldi/chrome


⚠ Bofrost.lu has degraded performance

In 318b921, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 3928 ms

Resolved: Bofrost.lu performance has improved in d365748 after 9 minutes.


Implement Convex-Hull Technique in C++

Description
I would like to implement the Convex Hull algorithm in C++ to find the smallest convex polygon that can enclose a given set of points in a 2D plane. The algorithm should take input as the number of points and their coordinates, and output the vertices of the convex hull in order. This involves understanding geometric concepts and can be approached using techniques such as Graham's scan or the Jarvis march (gift wrapping) algorithm. Familiarity with computational geometry concepts is necessary to effectively implement this algorithm.
Kindly assign me this issue under Hactoberfest24!!

@strivedi4u will u kindly assisgn it to me


LibJS: Count code-points instead of bytes for syntax highlight.

This fixes issue #1847, a crash on view-source sites with non-ascii characters in

Oppsies. I have fixed the commit message.


New Callback: EarlyBaselineStopping

Google Doc: https://docs.google.com/document/d/1FvMlmW9diNaKJ988njcXEqb862kZUpGmLWzEvla3_FA/edit?usp=sharing

Thank you for the PR @nittanycolonial. Please add a unit test to tests/keras/test_callbacks.py.

@taehoonlee Unit tests have been added.

@taehoonlee I appreciate all the feedback. I refactored the unit tests and updated this PR.

Restarting tests.

@fchollet Understood. I will make it a subclass and you will see that in the next iteration

Two notes:

New arguments should be appended at the end of a signature (unless in cases where this would be semantically inconsistent) to avoid breaking people who use positional arguments.
baseline=None is a better default value in this case, since metrics may be negative and 0 may be a valid metric value.

I fixed both issues in a new commit.

@fchollet Understood, thank you.


Programmatically increase Buffer Size

When loading a lot of data, we noticed that the pumps only handle a small amount of data at a time.
Here is small debug output of a recent run.
2015-08-25T16:40:48.774Z [(root)] input: 373706 items, 0 in, 4 out | output: 0 items, 0 in, 0 out |
2015-08-25T16:40:49.775Z [(root)] input: 373704 items, 0 in, 2 out | output: 0 items, 0 in, 0 out |
2015-08-25T16:40:50.778Z [(root)] input: 373701 items, 0 in, 3 out | output: 0 items, 0 in, 0 out |
2015-08-25T16:40:51.778Z [(root)] input: 373699 items, 0 in, 2 out | output: 0 items, 0 in, 0 out |
2015-08-25T16:40:52.778Z [(root)] input: 373696 items, 0 in, 3 out | output: 0 items, 0 in, 0 out |
2015-08-25T16:40:53.779Z [(root)] input: 373693 items, 0 in, 3 out | output: 0 items, 0 in, 0 out |
2015-08-25T16:40:54.780Z [(root)] input: 373690 items, 0 in, 3 out | output: 0 items, 0 in, 0 out |
2015-08-25T16:40:55.781Z [(root)] input: 373688 items, 0 in, 2 out | output: 0 items, 0 in, 0 out |
2015-08-25T16:40:56.783Z [(root)] input: 373685 items, 0 in, 3 out | output: 0 items, 0 in, 0 out |
2015-08-25T16:40:57.784Z [(root)] input: 373683 items, 0 in, 2 out | output: 0 items, 0 in, 0 out |
2015-08-25T16:40:58.784Z [(root)] input: 373680 items, 0 in, 3 out | output: 0 items, 0 in, 0 out |
2015-08-25T16:40:59.785Z [(root)] input: 373677 items, 0 in, 3 out | output: 0 items, 0 in, 0 out |
Is there anyway to tell the system to work on more than 2 - 4 at a time
We have tried the following but it does not appear to help:
data_pump._buffers['output'].size = some higher number

According to the log, increasing buffer size wouldn't help, as you don't write to output buffer.
A pump consumes data from its input buffer as fast as possible. Please check the throughput of .process() method. Maybe your are missing some indices in the target sql tables or there is some network problem (e.g. separate http requests instead of keep-allive) that leads to the poor performance.

We are not writing to SQL.
We are reading from TSQL and posting to restful endpoints
We are finding if we do the same process without data pumps the process works much faster.
We do batches of about 100 at a time.
In comparison. if we use the same source and destination systems we find that We can make 100,000 posts in about 2.5 hours. If we do the same with using data pumps, this number almost triples.
We like data pumps because of the mix-ins and the buffering portion that it does, since this will give us the ability to do parallel runs. We just want it to have a higher throughput. We are not certain how to increase the throughput


Update logging.md

fix Sync doc about logging
Signed-off-by: LI XIN<EMAIL_ADDRESS>

/retitle [zh] Update logging.md

is this a dup? #32102?

/close


How to disable user input and just display the rating?

I would like the rating property to be calculated rather than being set by the user . How do I disable user input on the stars?

Setting userInteractionEnabled to false (NO in Objective-C) on your instance of CosmosView will prevent any interaction with it by the user. You can also do this through storyboard by unticking User Interaction Enabled in the attributes inspector.

Thanks @gerbiljames for the solution. I have not provided clear documentation on that, sorry @ariff20. You are not the first person who asked this question. I have updated the readme, I hope it is more clear now.
There is another way of stopping user input:
cosmosView.settings.updateOnTouch = false

'updateOnTouch' is inaccessible due to 'internal' protection level

Thanks for reporting the issue @afrade
I could not reproduce the bug unfortunately, see the demo app attached. Maybe there is something specific to your code that is causing the problem?
DemoCosmos.zip


Iron router showing "Organize your meteor application" after bundling

I recently upgraded to 1.0 .
Everything works fine while in the development stage
But after i build the package using meteor build and run it
I am taken to a custom iron router page which has the following message

Organize your Meteor application.

Router.route('/', function () {
  this.render('Home', {
    data: function () { return Items.findOne({_id: this.params._id}) }
  });
});

Router code
Router.route "/",
        onBeforeAction:(pause) ->
                if not Meteor.user() and not Meteor.loggingIn()
                        @render('login')
                else
                        @next()
        waitOn: ->
                @subscribe("teamsData")
                Session.set('page','homeFeed')
                Session.set('teamId','')
                Session.set('limit',5)
                Session.set('loggingOut',false);
        action:->
                if @ready
                        @render "feed"

I have this issue - everything is fine locally, but once I deploy to meteor.com, then all I get is the iron:router splash and nothing else. I assume it's a server side variable problem, but not sure...

Same issue and it just started happening today. Anyone figured it out?

I think you have some issues in production mode (check your
console) that prevent iron-router to work properly. If you fix it,
it's gone be fine.
Le Mer 11 févr 2015, à 17:33, Marine Boudeau a écrit :

Same issue and it just started happening today. Anyone figured it out?

— Reply to this email directly or view it on GitHub[1].

Links:

https://github.com/EventedMind/iron-router/issues/976#issuecomment-73912805

You're right. Thank you!

Same issue and it just started happening today and nothings from the console

@cmather @jamesfebin .
I have the same issue when it run on the production mode. I see your solution and set a server variable. But i dont konw which variable and how to set it. can you help me.
Very thanks!

@quickj I assume some of your apis of iron router are old. Do one thing comment all your routes and just use the / route . Refer iron router documentation. Let me know if it works out

@jamesfebin I have commented as you said.But get the same issue "Organize your Meteor application".
I checked the console and find two error:

Uncaught Error: Not permitted. Untrusted code may only remove documents by ID. [403]
GET https://www.youtube.com/iframe_api net::ERR_INSECURE_RESPONSE
Are these two error caused the problem?

1. Uncaught Error: Not permitted. Untrusted code may only remove documents by ID. [403]
You get this error when you are trying to do the follow
Collection.remove({name:someValue}) //will cause [403] erro

//correct way
Collection.remove({_id:this._id})
``

```2. GET https://www.youtube.com/iframe_api net::ERR_INSECURE_RESPONSE```

Check this [SO](http://stackoverflow.com/questions/23688565/failed-to-load-resource-neterr-insecure-response) related

It works fine on my local,but get these two error on production mod. So we must add the "_id" field on the "Collection.remove()" function?

@Ethaan i dont think these two errors caused the "Organize your Meteor application" issue. I try it on my local and also find these two error but works fine.

I'm also having this annoying thing after running meteor add manuelschoebel:ms-seo

Please help. Thanks.

+1

+1

+1

happy to accept a pull request to take this out
On Sun, Jun 28, 2015 at 1:47 PM, Satya van Heummen<EMAIL_ADDRESS>
wrote:

+1
—
Reply to this email directly or view it on GitHub
https://github.com/iron-meteor/iron-router/issues/976#issuecomment-116332934
.

Make sure to check your console output for e.g.
Uncaught TypeError: Cannot set property 'created' of undefined

(In my case caused by javascript referring to a delete template)
Errors like this will still let your app work in development but may cause the above screen when they show up in a bundled app.

+1

+1

+1

After I updated to Meteor 1.3 I have the same error. Please help.

+1

Here is a workaround has no solution is provided
$(function() {
            setTimeout(function(){
                $( "body div" ).last().remove();
            }, 10);
        });

+!

You have an error in your code.  Check the browser console.

same here, no error shown in console. Is there a solution yet?

+1
Seems silly that there is no configuration option to stop this welcome message from showing. Am using the solution @ThomsCass provided in https://github.com/Urigo/angular-meteor/issues/1314 while shouting into a pillow

+1

@paolo-g @tae-jun @ThomsCass added in 1.1.0

Thanks @chrisbutler !

Cheers!


Fix something went wrong message bubble

What kind of change does this PR introduce? Bugfix

Why was this change needed? Fixes #666

Thank you! @holopin-bot @lakshmi930


feat(chore): add contributing docs

I pass reviewing the content of CONTRIBUTING.md to @flowersinthesand and @quocle108.

@manh-vv @flowersinthesand please help me check again

@tiendq Thanks for your review, I updated the docs, please help me check again

@tiendq Thanks for your review, I updated the docs, please help me check again

LGTM.


Set up email bot

Bot will send emails to those on the Contact List.
Steps:

Export Contact List to Tables

dont need to do this. not sending many emails


How to train/test on my own dataset

Hi,
I want to try IRON on my own datasets, but I don't know how to get cam_dict_norm.json, could you share with me this part of code? Thanks!

Hi, I used colmap to get cam_dict_norm.json. The results in exp_iron_stage1/ours/validations_fine/ are good( after 30000 iters)

, but results in exp_iron_stage1/ours/normals are not good( after 30000 iters):

Could it was because I didn't do any things to make sure that:"Note we also assume the objects are inside the unit sphere. " as you said in readme?

Hi Kai,
I used the code "run_colmap.py" in Nerf++ to produce the cam_dict_norm.json, but the result is also bad, even for your dataset.
I used all images in train and test of "Xmen" to run the code "run_colmap.py" in Nerf++, then I run "camera_visualizer\visualize_cameras.py" in Nerf++ to visualize the cameras, here is the result, the first picture the cameras result of "Xmen" given by "run_colmap.py" (the json file is xmen/posed_images/kai_cameras_normalized.json), and the second is the cameras  in the original dataset of "Xmen" :

you can see the deference. After that I splited the images in the dir "xmen/mvs/image"(this is the result of "run_colmap.py") to train and test by myself, and then I used them to train Iron. But after 15000 iters, the result of normal.png was still the same as the beginning:

and the result of mesh has 0 Vertices,0 Faces:

while for the original data, the result after 2500 iters is already good:

Do you know which part could be the reason?
I have been troubled by this problem for a long time, and it would be a GREAT HELP for me!! THANKS!! @Kai-46

Hi @changfali , I'm sorry that you have spent a lot of time on this; camera conventions are always a pain when you work in this domain.
To help you, I'd like to ask a few questions in order to make sure we are on the same page:

Did you happen to notice that colmap SfM outputs camera parameters as well as a sparse point cloud: https://github.com/Kai-46/nerfplusplus/blob/ebf2f3e75fd6c5dfc8c9d0b533800daaf17bd95f/colmap_runner/extract_sfm.py#L107 ? And you can visualize the point cloud together with the point cloud?

Did you happen to understand how camera normalization (as well as point cloud normalization, and that they need to be done together) work?

Did you happen to understand the technique of debugging poses with epipolar geometry visualization?

Totally fine if you haven't thought about these questions. But it would be helpful for me to answer your questions based on your familiarity in this area.
Best,
Kai

Also struggling to get cam_dict_norm.json

Hi @Kai-46 , Thanks for the reply! I know that colmap SfM outputs camera parameters as well as a sparse point cloud, and we can visualize the point cloud together with the cameras, but this link(https://github.com/Kai-46/nerfplusplus/blob/ebf2f3e75fd6c5dfc8c9d0b533800daaf17bd95f/colmap_runner/extract_sfm.py#L107) is not for point could, but for triangle mesh.  So I visualized the camera and the sparse point cloud without normalization:
right view:

top view:

for the camreas, the blue ones are the output of colmap(without normalization):  ./xmen/posed_images/kai_cameras.json
and the green ones are from the dataset you provided(with normalization).
the sparse point cloud is from: ./xmen/posed_images/kai_points.ply
and here is the inspect_epipolar_geometry.py result:

Is this a bug of colmap or the script "run_colmap.py"?
I find that you have share the complete output of scripts on an example data here: https://github.com/Kai-46/nerfplusplus/issues/16, but the link can not be used anymore, could you please share the complete scripts for us to get the cam_dict_norm.json (with the input of our data)?
Thanks a lot!
best,
changfa

Or maybe just the steps to run those scripts

Hi, I can try to share you a script later this week. But if you'd like to figure things out yourself. Here are the steps you need starting from the unormalized cameras and sparse point cloud from Colmap: 1) remove the extreme outliers in the sparse point cloud using meshlab; 2) then compute the bounding box for the sparse point cloud using open3d; 3) next, compute a translation vector and scale scalar to move the center of the bounding box to the origin, and diagonal of the bounding box to something smaller than 2, say 1.75. 4) use the translation vector and scale scale to normalize the cameras and the point cloud; after this normalization, the point cloud (hence the object) will be inside the unit sphere.

Hi, here are some others results:
cameras (xmen/posed_images/kai_cameras_normalized.json) and colmap MVS result mesh (xmen/mvs/meshed_trim_3.ply with normalization using https://github.com/Kai-46/nerfplusplus/blob/ebf2f3e75fd6c5dfc8c9d0b533800daaf17bd95f/colmap_runner/extract_sfm.py#L107):

you can see the face part is not right, and the cameras are all in front of the scene.
here are the inspect_epipolar_geometry.py results:

The version of my colmap is 3.8, build from source following: https://colmap.github.io/install.html on Ubuntu 20.04.

Hi, I can try to share you a script later this week. But if you'd like to figure things out yourself, here are the steps you need starting from the unnormalized cameras and sparse point cloud from Colmap: 1) remove the extreme outliers in the sparse point cloud using meshlab; 2) then compute the oriented bounding box for the sparse point cloud using open3d; 3) next, compute a translation vector and scale scalar to move the center of the bounding box to the origin, and diagonal of the bounding box to something smaller than 2, say 1.75. 4) use the translation vector and scale scalar to normalize the cameras and the point cloud; after this normalization, the point cloud (hence the object) will be inside the unit sphere.

Hi@Kai-46, did you finish the script? I have no idea which step could be wrong for amera conventions..

Here it is. I hope the script is self-explanatory to you.
import numpy as np
import json
import copy
import open3d as o3d

def normalize_cam_dict(
    in_cam_dict_file, out_cam_dict_file, target_radius=1.0, in_geometry_file=None, out_geometry_file=None
):
    # estimate a translate and scale that centers the objects from the sparse point cloud
    pcd = o3d.io.read_point_cloud(in_geometry_file)
    box = pcd.get_oriented_bounding_box()
    box_corners = np.asarray(box.get_box_points())  # [8, 3]
    box_center = np.mean(box_corners, axis=0, keepdims=True)  # [1, 3]
    dist = np.linalg.norm(box_corners - box_center, axis=1, keepdims=True)  # [8, 1]
    diagonal = np.max(dist)
    translate = -box_center
    scale = target_radius / radius

    # apply translate and scale to the sparse point cloud
    if in_geometry_file is not None and out_geometry_file is not None:
        tf_translate = np.eye(4)
        tf_translate[:3, 3:4] = translate
        tf_scale = np.eye(4)
        tf_scale[:3, :3] *= scale
        tf = np.matmul(tf_scale, tf_translate)

        pcd_norm = pcd.transform(tf)
        o3d.io.write_point_cloud(out_geometry_file, pcd_norm)

    # apply translate and scale to the cameras
    with open(in_cam_dict_file) as fp:
        in_cam_dict = json.load(fp)

    def transform_pose(W2C, translate, scale):
        C2W = np.linalg.inv(W2C)
        cam_center = C2W[:3, 3]
        cam_center = (cam_center + translate) * scale
        C2W[:3, 3] = cam_center
        return np.linalg.inv(C2W)

    out_cam_dict = copy.deepcopy(in_cam_dict)
    for img_name in out_cam_dict:
        W2C = np.array(out_cam_dict[img_name]["W2C"]).reshape((4, 4))
        W2C = transform_pose(W2C, translate, scale)
        assert np.isclose(np.linalg.det(W2C[:3, :3]), 1.0)
        out_cam_dict[img_name]["W2C"] = list(W2C.flatten())

    with open(out_cam_dict_file, "w") as fp:
        json.dump(out_cam_dict, fp, indent=2, sort_keys=True)

if __name__ == "__main__":
    in_cam_dict_file = ""
    out_cam_dict_file = ""
    normalize_cam_dict(in_cam_dict_file, out_cam_dict_file, target_radius=0.8)

Hi, thanks for the script!! In my understanding, the normalization for both cameras and the point cloud is to put them into a unit sphere( Is this right?).
This is the result of the normalization:

But as you can see, the positions of the cameras are not right: all the cameras are in front of the object. And this is the reason why I picked a front image and a back image for inspecting the epipolar geometry. The images which have non overlap in content should not have keypoints with others, but in my case it went wrong. Is this the mismatch of SIFT? Can you test the Xmen data from your side? Again, the version of my colmap is 3.8, build from source following: https://colmap.github.io/install.html on Ubuntu 20.04.

Please allow me to ask a simple question: how did you manage to reconstruct the back of X-men (as shown in your point cloud) if all your cameras are in the front?

This is what I got from running the script Kai provided.

Delete the points that don't 'belong' to the model. The normalization calculation is based on the entire point cloud's furthest points forming a bounding box on the point cloud.
I set the scale to 0.5 numerator to 0.5 to fit it inside the sphere.
Do the results look reasonable?

This one looks more reasonable!
Btw, one side tip in case you don't know: you can visualize the bounding box in meshlab easily through "Render -> Show box corners". Showing the box also makes it easier to manually remove the extreme outliers in meshlab.

Glad to hear that!
So maybe changfali can get the results hes looking for if he starts by cropping away all the noisy points in his pointcloud

Glad to hear that! So maybe changfali can get the results hes looking for if he starts by cropping away all the noisy points in his pointcloud

Please allow me to ask a dumb question, if I run colmap gui by myself and get the cameras,images,points3D file in both bin and txt format.What should be the input of the in_cam_dict_file = "" in the script ?

Glad to hear that! So maybe changfali can get the results hes looking for if he starts by cropping away all the noisy points in his pointcloud

Please allow me to ask a dumb question, if I run colmap gui by myself and get the cameras,images,points3D file in both bin and txt format.What should be the input of the in_cam_dict_file = "" in the script ?

You have to transform it into a json file with the coordinate convention they are using.
That can be done using part of the function extract_all_to_dir, from https://github.com/Kai-46/nerfplusplus/blob/master/colmap_runner/extract_sfm.py.  Seems to be from line 97 to line 99. Just a reminder this one gives unnormalized values. I hope this helps~

Glad to hear that! So maybe changfali can get the results hes looking for if he starts by cropping away all the noisy points in his pointcloud

Please allow me to ask a dumb question, if I run colmap gui by myself and get the cameras,images,points3D file in both bin and txt format.What should be the input of the in_cam_dict_file = "" in the script ?

You have to transform it into a json file with the coordinate convention they are using. That can be done using part of the function extract_all_to_dir, from https://github.com/Kai-46/nerfplusplus/blob/master/colmap_runner/extract_sfm.py. Seems to be from line 97 to line 99. Just a reminder this one gives unnormalized values. I hope this helps~

I tried to run this
sparse_dir = 'E:\deep_learning_stuff\New_Folder\ngp5\instant-ngp\colmap_sparse\0'
cameras, images, points3D = read_model(sparse_dir, ext)
camera_dict = parse_camera_dict(cameras, images)
with open(camera_dict_file, 'w') as fp:
json.dump(camera_dict, fp, indent=2, sort_keys=True)
Sorry I am not a code guy, can you write a complete script with input and output ? Thanks - -

Here it is. I hope the script is self-explanatory. Please keep in mind that the normalization must be applied to the point cloud and cameras at the same time (might worth thinking why this is the case from your side); and when you inspect the epipolar geometry, try picking pairs of images that overlap in content rather than a front image and a back image (might worth thinking about the logic too).
import numpy as np
import json
import copy
import open3d as o3d

def normalize_cam_dict(
    in_cam_dict_file, out_cam_dict_file, target_radius, in_geometry_file, out_geometry_file
):
    # estimate a translate and scale that centers the objects from the sparse point cloud
    #! note if your sparse point cloud contains extreme outliers, you should remove the outliers in meshlab first,
    #!    ohterwise, the estimated bounding box is going to be too big.
    pcd = o3d.io.read_point_cloud(in_geometry_file)
    box = pcd.get_oriented_bounding_box()
    box_corners = np.asarray(box.get_box_points())  # [8, 3]
    box_center = np.mean(box_corners, axis=0, keepdims=True)  # [1, 3]
    dist = np.linalg.norm(box_corners - box_center, axis=1, keepdims=True)  # [8, 1]
    diagonal = np.max(dist)
    translate = -box_center
    scale = target_radius / (diagonal / 2.)

    # apply translate and scale to the sparse point cloud
    tf_translate = np.eye(4)
    tf_translate[:3, 3:4] = translate
    tf_scale = np.eye(4)
    tf_scale[:3, :3] *= scale
    tf = np.matmul(tf_scale, tf_translate)

    pcd_norm = pcd.transform(tf)
    o3d.io.write_point_cloud(out_geometry_file, pcd_norm)

    # apply translate and scale to the cameras
    with open(in_cam_dict_file) as fp:
        in_cam_dict = json.load(fp)

    def transform_pose(W2C, translate, scale):
        C2W = np.linalg.inv(W2C)
        cam_center = C2W[:3, 3]
        cam_center = (cam_center + translate) * scale
        C2W[:3, 3] = cam_center
        return np.linalg.inv(C2W)

    out_cam_dict = copy.deepcopy(in_cam_dict)
    for img_name in out_cam_dict:
        W2C = np.array(out_cam_dict[img_name]["W2C"]).reshape((4, 4))
        W2C = transform_pose(W2C, translate, scale)
        assert np.isclose(np.linalg.det(W2C[:3, :3]), 1.0)
        out_cam_dict[img_name]["W2C"] = list(W2C.flatten())

    with open(out_cam_dict_file, "w") as fp:
        json.dump(out_cam_dict, fp, indent=2, sort_keys=True)

if __name__ == "__main__":
    in_cam_dict_file = ""
    out_cam_dict_file = ""
    normalize_cam_dict(in_cam_dict_file, out_cam_dict_file, target_radius=0.8)

Hi, can you provide a script to convert colmap gui output to the camera convention used here ?

After running run_colmap.py I get kai_cameras.json,kai_cameras_normalized.json,kai_keypoints.json,kai_points.ply.Then I open ply file in meshlab and remove points that don't belong to the model and save to replace the original ply.
Then I run the script provided by kai, I get the following error.
File "camera.py", line 63, in
normalize_cam_dict(in_cam_dict_file, out_cam_dict_file, target_radius=0.8)
TypeError: normalize_cam_dict() missing 2 required positional arguments: 'in_geometry_file' and 'out_geometry_file'

After running run_colmap.py I get kai_cameras.json,kai_cameras_normalized.json,kai_keypoints.json,kai_points.ply.Then I open ply file in meshlab and remove points that don't belong to the model and save to replace the original ply. Then I run the script provided by kai, I get the following error. File "camera.py", line 63, in normalize_cam_dict(in_cam_dict_file, out_cam_dict_file, target_radius=0.8) TypeError: normalize_cam_dict() missing 2 required positional arguments: 'in_geometry_file' and 'out_geometry_file'

in_geometry_file is the .ply file you edited. out_geometry_file is the name to save the output pointcloud file

After running run_colmap.py I get kai_cameras.json,kai_cameras_normalized.json,kai_keypoints.json,kai_points.ply.Then I open ply file in meshlab and remove points that don't belong to the model and save to replace the original ply. Then I run the script provided by kai, I get the following error. File "camera.py", line 63, in normalize_cam_dict(in_cam_dict_file, out_cam_dict_file, target_radius=0.8) TypeError: normalize_cam_dict() missing 2 required positional arguments: 'in_geometry_file' and 'out_geometry_file'

in_geometry_file is the .ply file you edited. out_geometry_file is the name to save the output pointcloud file

I understand, but I don't know what to do...

Now I install open3d by pip install open3d,
now it gives "Traceback (most recent call last):
File "camera.py", line 64, in
normalize_cam_dict(in_cam_dict_file, out_cam_dict_file, 0.8,in_geometry_file, out_geometry_file)
File "camera.py", line 29, in normalize_cam_dict
tf_translate[:3, 3:4] = translate
ValueError: could not broadcast input array from shape (1,3) into shape (3,1)
"

run the function like this : normalize_cam_dict(in_cam_dict_file, out_cam_dict_file,0.8, in_geometry_file, out_geometry_file)

Sorry to bother you again, do you know how to solve the issue above ?

Hi @Michaelwhite34, sorry that there were some bugs in the code I shared earlier. I just created a self-contained camera normalization demo with examples included; you can simply use the normalize_then_visualize_camera.py to convert COLMAP outputs to JSON files: https://www.icloud.com/iclouddrive/00f6DcB-NJNHH16r3o5BVcovg#camera_demo

Hi @Michaelwhite34, sorry that there were some bugs in the code I shared earlier. I just created a self-contained camera normalization demo with examples included; you can simply use the normalize_then_visualize_camera.py to convert COLMAP outputs to JSON files: https://www.icloud.com/iclouddrive/00f6DcB-NJNHH16r3o5BVcovg#camera_demo

Can the scripts run on windows ? First I run colmap gui to get a folder sparse/0 with 3 bin and 1 ini. And then run normalize_then_visualize_cameras.py to get "'Please manually crop your sparse point cloud in meshlab to remove outliers!'". I know I should have run run_colmap.py first instead of using Colmap gui, but that would make error on windows and I deleted my ubuntu long time ago.

(open3d) D:\nerfplusplus\colmap_runner>python run_colmap.py
Running sift matching...
Running cmd:  D:/COLMAP-3.9.1-windows-cuda/COLMAP-3.9.1-windows-cuda/bin/colmap  feature_extractor --database_path D:\New5\sfm\database.db                                     --image_path D:/New_Folder4/
--ImageReader.single_camera 1                                     --ImageReader.camera_model SIMPLE_RADIAL
--SiftExtraction.max_image_size 5000                                      --SiftExtraction.estimate_affine_shape 0                                     --SiftExtraction.domain_size_pooling 1
--SiftExtraction.use_gpu 1                                     --SiftExtraction.max_num_features 16384
--SiftExtraction.gpu_index -1
Traceback (most recent call last):
File "run_colmap.py", line 167, in
main(img_dir, out_dir, run_mvs=run_mvs)
File "run_colmap.py", line 128, in main
run_sift_matching(img_dir, db_file, remove_exist=False)
File "run_colmap.py", line 39, in run_sift_matching
bash_run(cmd)
File "run_colmap.py", line 15, in bash_run
subprocess.check_call(['/bin/bash', '-c', cmd])
File "D:\anaconda3\envs\open3d\lib\subprocess.py", line 359, in check_call
retcode = call(*popenargs, **kwargs)
File "D:\anaconda3\envs\open3d\lib\subprocess.py", line 340, in call
with Popen(*popenargs, **kwargs) as p:
File "D:\anaconda3\envs\open3d\lib\subprocess.py", line 858, in init
self._execute_child(args, executable, preexec_fn, close_fds,
File "D:\anaconda3\envs\open3d\lib\subprocess.py", line 1327, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified

Finally I figured it out, but there is still error in the mesh generation phase.
global_step: 50000
loss.item(): 0.17388814687728882
img_loss.item(): 0.17244312167167664
img_l2_loss.item(): 0.08620146661996841
img_ssim_loss.item(): 0.08624166250228882
eik_loss.item(): 0.0014450259041041136
roughrange_loss.item(): 0.0
color_network_dict["point_light_network"].get_light().item(): 1.240997076034546
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 50001/50001 [2:19:22<00:00,  5.98it/s]
ic| f"Exporting mesh and materials to: {export_out_dir}": ('Exporting mesh and materials to: '
'./exp_iron_stage2/rabbit/mesh_and_materials_50000')
ic| 'Exporting mesh and uv...'
Traceback (most recent call last):
File "render_surface.py", line 549, in
export_mesh_and_materials(export_out_dir, sdf_network, color_network_dict)
File "render_surface.py", line 325, in export_mesh_and_materials
export_mesh(sdf_fn, os.path.join(export_out_dir, "mesh.obj"))
File "/workspace/iron/models/export_mesh.py", line 73, in export_mesh
areas = np.array([c.area for c in components], dtype=np.float)
File "/root/anaconda3/envs/iron/lib/python3.8/site-packages/numpy/init.py", line 305, in getattr
raise AttributeError(former_attrs[attr])
AttributeError: module 'numpy' has no attribute 'float'.
np.float was a deprecated alias for the builtin float. To avoid this error in existing code, use float by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use np.float64 here.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations


Cyon fix typos

Fixing some typos.
Motivation:
Typos are bad..? 😅

@swift-server-bot test this please


test: add test case iot-qcow2-image

all comments resolved and test passed, ready for merge now.

Thanks @yih-redhat. I merged PR #4990. Could you please make a rebase and use /test-f38-qcow2 to trigger test.

/test-f38-qcow2

/test-f38-qcow2


Nest prompts within git removal callback

Given the existing structure, the "Original Git repository removed" message can (and on my machine did) appear after the prompt for the new project name. It's green styling arrested my attention from the prompt causing me to believe the process had hung. By moving the prompts inside the callback, git removal will always be completed before the prompting begins.
The confusing message is included below:

Dependencies installed.
WARNING:  Preparing to delete local git repository...
prompt: Delete the git repository?  YES to continue or NO to skip.:  YES
Updating package.json settings:
prompt: Project name (default: new-project):  Original Git repository removed.

Coverage remained the same at 98.571% when pulling ceb159b5db66081e6586aedddea88abd5746fa2f on hbaughman:patch-1 into 560ae4d846e3e2523afff5b62dd8f05f7e1c8262 on coryhouse:master.

Thanks! 👍


*: clean previously fields for renamed labels

Why
The labels were renamed, so no need to keep the previously fields anymore.

/merge


Allow arbitrary attributes in HTMLDependency's stylesheet and script objects

I appreciate the effort in this type (and the one for script objects as well), but I think it might be overly limiting.
https://github.com/posit-dev/py-htmltools/blob/a3a98259ee4c5164763a6f70b86e531c13a5bcc1/htmltools/_core.py#L1322-L1341
I recently wanted to add a data- attribute to the <link> tag for a set of stylesheets in the shinyswatch HTMLDependency. I was pleased that stylesheet implementation lets me pass arbitrary attributes, but I had to disable type checking for the input.
I also noticed that the presence of these types did not lead to any hints in the IDE, just type errors when checked. That might be a configuration issue on my end, or it might signal that the type annotation isn't as useful as expected.
Personally, I think the TagAttrValues type would balance flexibility and type checking.

I think that we can allow other attributes with the new __extra_items__ syntax as described in https://peps.python.org/pep-0728/.
One of the useful things about the typed dictionaries is that they will tell you if you're missing a required field. The non-required fields can be useful for autocompletion.

(An aside: I can't remember why they're built the way they are, by combining two TypedDicts, one with required fields and one with non-required fields, instead of a single TypedDict with NotRequired for some of the fields. Perhaps this code was written before NotRequired was available?)

Oh I see, the part I was missing is that you have to open the dictionary key "" to trigger the autocomplete.


opensuse should install based on the patterns

There is no kernel-devel on opensuse. Instead we use the zypper "patterns". I added some patterns, that maybe are more than the necessary. However it works as expected.

Thanks for your work @vpereira.


Filter IN throws parse error

Bug report
Describe the bug
Using supabase-js to filter values based on an array of values throws a parse error.
{"details": "unexpected \"2\" expecting \"(\"", "message": "\"failed to parse filter (in.123,234 (line 1, column 4)"}
To Reproduce
Steps to reproduce the behavior, please provide code snippets or a repository:
supabase
	.from('table_name')
	.select('*')
	.filter('column', 'in', [123,234]);

Expected behavior
To send the filter query to the database.

Cheers for the prompt reply!
You are correct! I'll admit I had not read the docs before working with this. That said, I don't think the docs would've helped anyway, they're not clear about this coupling: https://supabase.io/docs/reference/javascript/filter
I think it would be worth covering the edge cases where this "understanding" would be a problem in the docs, all examples just demonstrate it like: filter('col', 'eq', value) which gives the wrong impression.


Change TCP Decoder and Encoder

Since currently the TCP Encoder and Decoder is relied by runtime and sdk. So we don't move the Protocol plugin to Encoder and Decoder. In the current code, when sdk pub message to runtime, decoder will decoder the tcp package and deserialize the message to json string, and protocol plugin will deserialize the json string to target message.
And runtime publish message to sdk, the sdk also need to deserialize the message json string, this code will duplicate in protocol plugin and sdk, we can optimize this in the future.
We can not use JsonUtils to deserialize CloudEvent, since there are no NoArgsConstructor in CloudEvent, it might need to write code to do this.

@xwm1992 Please take a look.