Add support for Azure CLI authentication

Only service bus relay for now. SQL Azure will follow.

I am curious what the plan is for this long term? Do we imagine we would have some kind of security group that we could add people to for the proper access to the relay?
Question aside the code LGTM.

I added that to be able to use Managed Identities. In ADO there is a service connection for a user managed identity, and with the AzureCliTask we can use this service connection. So in theory we could use the same principle for SQL Server when running on ado. Then the fact it works locally helps with debugging. For instance I added myself as a sender on the relay and it worked. If we want to create a group we can too, but I don't see a reason for now (unless we want to send jobs on the Azure VMs directly since they are in a private vlan).


viewmodel collision issues

Describe the bug
viewmodel tracer and fastcast raycast not passing through ViewModel model
To Reproduce
Steps to reproduce the behavior:

run game with branch 3521cbcb
fire and attempt to get the model to slide towards the crosshair
see for collisions

Expected behavior
the casts/effects to pass through

issue #6 alongside #9 have been fixed with the latest commit a826320
just had to add stuff on the tracers code


Clean whitespace

Unfortunately the one change that this PR makes is no longer relevant. Thanks for the effort though!


Vectors not working in structs

I'm receiving the following error:
the traitstd::marker::Copyis not implemented forstd::vec::Vec
for this struct:
#[wasm_bindgen]
pub struct Mesh{
    pub tris: Vec<u32>,
}

If I change tris' type to u32, the error goes away.
This page lists Vectors and slices of supported integer types as supported.

Thanks for the report! Currently though public struct fields are a special case in that they only work with Copy types. This should definitely be better documented!

Thanks; removing pub on the field fixed it

Related Q: How do you extract a value from a struct passed via bindgen to JS? The object I see when printing to console.log() contains a ptr field of a large integer, and a very deep recursive structure containing values like , free, constructor, bind, call etc. Eg, how can I make  mesh.tris work, eg returning a number[].
[This page in the official guide](shows examples with structs), but doesn't show accessing a value contained in one.

@David-OConnor ah that's got its own separate bug for defining JS getters in Rust

@alexcrichton Perhaps the solution, assuming there's an obstacle to exposing fields directly, is to serialize the struct, pass it to JS, then deserialize into an object. This assumes no methods.

Oh currently the main obstacle in a sense is that it's not clear what to do if the field isn't Copy because JS gets just a snapshot and mutating that isn't clear you're not mutating the original Rust value. For example in JS if you did mesh.tris.push(3) it wouldn't necessarily be reflected back in the tris field in Rust.

That makes sense. One way to handle this is to send one-way structs to JS, that don't call back to the Rust code. I got it working like this, using serde:
Rust:
#[wasm_bindgen]
pub fn get_mystruct() -> String {

    let mystruct = MyStruct {..};  // where MyStruct derives Serialize

    serde_json::to_string(&mystruct).unwrap()
}

JS:
const rust = import("./from_rust");
rust.then(
    r =>
    {
        let myStruct = JSON.parse(get_mystruct());
    })

No methods, but can be fed into a constructor for a JS object that has methods, or just used as-is, optionally by declaring it with a Typescript interface.

@David-OConnor oh we already have those apis actually!
https://github.com/rustwasm/wasm-bindgen/blob/1a8490146d42e877e72c72e0d558ebe8e939e1f2/src/lib.rs#L153-L206

@alexcrichton  Sick!

You also cannot store a pub String in a struct, presumably for the same reason outlined in this issue.   Strings are pretty fundamental types.  Could we expand the documentation to mention this limitation? https://rustwasm.github.io/docs/wasm-bindgen/reference/types/string.html

This ByteString struct can't be returned from a function because the Vec is not Copy:
#[wasm_bindgen]
pub struct ByteString {
    pub bytes: Vec<u8>,
}

But a clone directly in a getter works:
#[wasm_bindgen]
impl ByteString {
    pub fn get(&self) -> Vec<u8> {
        self.bytes.clone()
    }
}

This adds a seemingly useless indrection - now every Vec that is returned anywhere needs to be wrapped in such a struct and accessed via a getter. Is there a reason why this could not work directly? Would be very appreciated.
Same for String.

https://github.com/rustwasm/wasm-bindgen/issues/439#issuecomment-404651727

Oh currently the main obstacle in a sense is that it's not clear what to do if the field isn't Copy because JS gets just a snapshot and mutating that isn't clear you're not mutating the original Rust value. For example in JS if you did mesh.tris.push(3) it wouldn't necessarily be reflected back in the tris field in Rust.

This would require some design work and figuring out what to do here.

@daxpedda Would generating getters for all struct members as @David-OConnor suggest be a good initial compromise (usability for perf) or were you thinking on other (better) design patterns for the get-go?
I'm willing to give either a go after fixing my cargo issues with wasm-bindgen.

It would have to be done with the help of an attribute, because doing it by default is probably a bad idea.
Personally I'm not much in favor of doing this, as this can be done outside of wasm-bindgen.
I'm generally very hesitant to keep increasing the scope of this project.


Multiple instances of Container just doesn't work

If you setup two instances of a Container root, for example, the second one doesn't work anymore since the payload (object dragged) is undefined.

did you trigger the getChildPayload function and made sure the containers have the same group name?


tf.nn.rnn_cell.DropoutWrapper() drops out across time-steps

at class DropoutWrapper(RNNCell): it seems dropout is implemented across all inputs and outputs without any implementation options.
Would like to have the option for rnn dropout where one 'dropout mask' is generated and is then applied to each time step. On the next batch, a new mask is generated. This method is described in:
(https://arxiv.org/pdf/1512.05287.pdf)
There a few other dropout methods that have been published recently including one from google.
(https://www.aclweb.org/anthology/C/C16/C16-1165.pdf)
And also 'zoneout' which is mentioned in Issue #2789.
Are there any plans to incorporate these advances?
-Brad

@ebrevdo might have thoughts on this.

This would be a useful option.  We'll need to identify the best way to do it. What do you expect to happen if the dropout wrapper is used in two different calls to dynamic_rnn?  The same mask is used across both rnns?

Doesnt this (https://gist.github.com/yohokuno/8d6661d7e0c85ba4d03d5d7a2b15a2b6) help?

I think ideally each call to dynamic_rnn would generate a new random mask. Hence stacked rnn's using the dropoutwrapper would have recurrent dropout, but different masks for each layer.
Although I guess you could add a seed option if someone wanted to make them the same?
DropoutWrapper( recurrent=True, seed=None)
Args:
recurrent: if True applies dropout mask to individual time slices on the input and output after each time-step (purposed*). If False, apply dropout randomly to input and output (current implementation*)
seed: set the seed for random dropout mask generation.

Any thoughts on this moving forward? As a workaround right now I have to statically unroll my lstm so I can manually apply my own randomly generated dropout mask to successive time steps.

I have a partial solution.  Will try to get it in early next week.
On Mar 9, 2017 7:36 AM, "Brad"<EMAIL_ADDRESS>wrote:

Any thoughts on this moving forward? As a workaround right now I have to
statically unroll my lstm so I can manually apply my own randomly generated
dropout mask to successive time steps.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/7927#issuecomment-285385664,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABtim561TWhtBek8lkLNopv1Rzz1LZSMks5rkByTgaJpZM4MNheF
.

Scratch that, it's now a full implemention. Going through review now. Hope to push it tomorrow.

Howd the review go?

Code is in. Use the argument variational_recurrent=True.
On Mar 27, 2017 6:30 AM, "Brad"<EMAIL_ADDRESS>wrote:

Howd the review go?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/7927#issuecomment-289453609,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABtim_1mD-lH54oinjw_tDvUJVWqGprFks5rp7oJgaJpZM4MNheF
.

Thanks a lot for this implementation.
We can't use it for variable length inputs though. What should be given as an input_size ? input_size=tf.TensorShape([100, None, 200]) gives an error:
TypeError: Tensors in list passed to 'values' of 'ConcatV2' Op have types [int32, <NOT CONVERTIBLE TO TENSOR>] that don't all match.

Have you tried tf.shape(inputs)[1:]?  I think that may work.
On Jun 30, 2017 4:59 AM, "Hrant Khachatrian"<EMAIL_ADDRESS>wrote:

Thanks a lot for this implementation.
We can't use it for variable length inputs though. What should be given as
an input_size ? input_size=tf.TensorShape([100, None, 200]) gives an
error:
TypeError: Tensors in list passed to 'values' of 'ConcatV2' Op have types
[int32, ] that don't all match.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/7927#issuecomment-312249028,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABtimw_hyoCcpdzszZGBlHkw74EliEtQks5sJOMsgaJpZM4MNheF
.

Now it says TypeError: int() argument must be a string or a number, not 'Tensor'

What version of tensorflow are you using?
On Jul 2, 2017 1:29 AM, "Hrant Khachatrian"<EMAIL_ADDRESS>wrote:

Now it says TypeError: int() argument must be a string or a number, not
'Tensor'
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/7927#issuecomment-312477991,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABtim6QGtA9_6hoxoZ0GhooX3VUV7gKTks5sJ1TTgaJpZM4MNheF
.

0.12.head

1.2.1
same problem.. TypeError: int() argument must be a string or a number, not 'Tensor'

Hi @Hrant-Khachatrian, when you say "variable length inputs", do you mean the sequence length is the variable? If so, I think the input_size for tf.TensorShape([100, None, 200]) is just 200 (assuming batch_size=100, variable sequence length), since the input_size is the input's depth of the RNN cell.
For TypeError: int() argument must be a string or a number, not 'Tensor', can you try inputs.get_shape()[1:]? - tf.shape() returns Tensor instead of TensorShape.

For a variable length input (but padded batches) of shape [batches, timesteps, 132],
inputs.get_shape()[1:] or [2:] does not work in my case. Here is the error:
ValueError: Dimensions must be equal, but are 128 and 132 for 'Encoder/Encoder/while/Encoder/multi_rnn_cell/cell_1/mul' (op: 'Mul') with input shapes: [?,128], [1,132].
LSTMCell was instanced with 128 num_units
tf-nightly-gpu (1.4.0.dev20171013)

@georgesterpu
From your error, it seems you have at least 2 layer of lstm? Is your dropout wrapper applied on the 2nd layer's cell? If so, the input size to your second layer should be your first layer's output, which is 128 instead of 132.

Thanks, @oahziur, you are right.
I have added an extra parameter, the layer number, to my build_cell function, and I instantiate the DropoutWrapper like this:
cells = DropoutWrapper(cells,
                                   ..............
                                   variational_recurrent=True,
                                   dtype=tf.float32,
                                   input_size=self._inputs.get_shape()[-1] if layer == 0 else tf.TensorShape(num_units),
                                )

and it appears to work.
However, I get a new error on the decoder side in a seq2seq model:
ValueError: Dimensions must be equal, but are 143 and 128 for 'Decoder/decoder/while/BasicDecoderStep/decoder/attention_wrapper/attention_wrapper/multi_rnn_cell/cell_0/mul' (op: 'Mul') with input shapes: [?,143], [1,128].
I did make sure that for the decoder cells, input size is still num_units (128), and not self._inputs.get_shape()[-1], because it is initialised from the encoder's final state. Still, I get the same error. Do you have any suggestion here ?

I have a question regarding the implementation of variational_recurrent in the Dropout Wrapper. In the paper it says: 'Implementing our approximate inference is identical to implementing dropout in RNNs with the same network units dropped at each time step, randomly dropping inputs, outputs, and recurrent connections. This is in contrast to existing techniques, where different network units would be dropped at different time steps, and no dropout would be applied to the recurrent connections '
When setting variational_recurrent=True, do I get the full functionality of variational dropout presented in the paper (Y. Gal, Z. Ghahramani) ? I have looked at the source code but I'm still not sure whether it includes all aspects of variational dropout presented in the paper.

Also, could you explain which of the three dropout probabilities (input_keep_prob, output_keep_prob, state_keep_prob) needs to be set for variational dropout to function correctly?

After check out the implementation of variational_recurrent in the DropoutWrapper, I'm a little confused. When variational_recurrent=True, the mask is generated when the wrapper is initialized before the training process, and is applied across every batch. Would it be better if a new mask be generated every batch as @beeCwright first requested?
Since the wrapper implementation is to build a rnncell object, how can it be aware of a new batch is coming. From my limited understanding, only dynamic_rnn knows when a batch is coming and rnncell only deals with single timestep input and state.  Correct me if I'm wrong :P

You get a new batch every time you call session.run(), independent of the
graph, and a new dropout pattern is created with every call to
session.run().  Therefore a new dropout pattern is applied to every batch.
On Wed, Nov 22, 2017 at 1:07 AM, Yujia Liu<EMAIL_ADDRESS>wrote:

After check out the implementation of variational_recurrent in the
DropoutWrapper, I'm a little confused. When variational_recurrent=True,
the mask is generated when the wrapper is initialized before the training
process, and is applied across every batch. Would it be better if a new
mask be generated every batch as @beeCwright
https://github.com/beecwright first requested?
Since the wrapper implementation is to build a rnncell object, how can it
be aware of a new batch is coming. From my limited understanding, only
dynamic_rnn knows when a batch is coming and rnncell only deals with
single timestep input and state. Correct me if I'm wrong :P
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/7927#issuecomment-346287303,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABtimxd0_IPTH5UAYZ2RMZNTrJ-8OoZAks5s4-RTgaJpZM4MNheF
.


Crash in DI trying to load 1.0.13

Honestly, do you test of this plugin?  Sorry for my frustration, but I have yet to obtain a build of this aurelia-configuration that is usable without modification.  So I will be backing out to 1.0.11, again.
With v1.0.13, using system.js to load the module, I get the following exception.  The plugin is unusable as such:
Message: key/value cannot be null or undefined. Are you trying to inject/register something that doesn't exist with DI?

Inner Error Stack:
Error: key/value cannot be null or undefined. Are you trying to inject/register something that doesn't exist with DI?
    at Container.get (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:567:15)
    at Object.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:424:33)
    at InvocationHandler.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:389:168)
    at Container.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:651:25)
    at StrategyResolver.get (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:130:37)
    at Container.get (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:582:41)
    at Object.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:418:33)
    at InvocationHandler.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:389:168)
    at Container.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:651:25)
    at StrategyResolver.get (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:130:37)
    at Container.get (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:582:41)
    at Object.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:418:33)
    at InvocationHandler.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:389:168)
    at Container.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:651:25)
    at StrategyResolver.get (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:130:37)
    at Container.get (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:582:41)
End Inner Error Stack
------------------------------------------------

    at Container.get (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:567:15)
    at Object.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:424:33)
    at InvocationHandler.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:389:168)
    at Container.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:651:25)
    at StrategyResolver.get (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:130:37)
    at Container.get (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:582:41)
    at Object.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:418:33)
    at InvocationHandler.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:389:168)
    at Container.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:651:25)
    at StrategyResolver.get (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:130:37)
    at Container.get (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:582:41)
    at Object.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:418:33)
    at InvocationHandler.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:389:168)
    at Container.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:651:25)
    at StrategyResolver.get (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:130:37)
    at Container.get (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:582:41)
End Inner Error Stack
------------------------------------------------

    at new AggregateError (http://localhost:51323/jspm_packages/npm/aurelia-pal@1.0.0/aurelia-pal.js:38:13)
    at Container.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:653:15)
    at StrategyResolver.get (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:130:37)
    at Container.get (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:582:41)
    at Object.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:418:33)
    at InvocationHandler.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:389:168)
    at Container.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:651:25)
    at StrategyResolver.get (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:130:37)
    at Container.get (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:582:41)
    at Object.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:418:33)
    at InvocationHandler.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:389:168)
    at Container.invoke (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:651:25)
    at StrategyResolver.get (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:130:37)
    at Container.get (http://localhost:51323/jspm_packages/npm/aurelia-dependency-injection@1.0.0/aurelia-dependency-injection.js:582:41)
    at ValueConverterResource.initialize (http://localhost:51323/jspm_packages/npm/aurelia-binding@1.0.6/aurelia-binding.js:4917:33)
    at ResourceDescription.initialize (http://localhost:51323/jspm_packages/npm/aurelia-templating@1.1.1/aurelia-templating.js:2980:21)

Got a similar prolem with 1.0.13 too. First time I use this plugin, when I inject Configure nothing happens and my VMs don't get loaded.
Really happy to have found this answer, I installed down to 1.0.11 and it seems to work.

aurelia-configuration  is not getting much attention.

Don't understand why though. I setup my site for development and production, based on the current url, and it works great.
What do people use to call the right endpoints?

@dkent600 This is open source. I work a full-time day job Monday to Friday, I also have additional work and a 16 month old son, as well as wife. I understand the frustration, but I go through periods of time where I can't devote the required time I need to plugins like this which are free and cost me in time. The reason this plugin is open source is so others can contribute, fixing bugs and making improvements.
The last release was tested in a Webpack skeleton before I put it out. Eventually I will be writing tests for this and sorting out some kind of continuous delivery, but until then, things will be done manually. Unless of course someone wants to work on the tests part.

Hi,
Had the same problem, went from 1.0.4 to a the latest and got the dread error ...
Message: key/value cannot be null or undefined. Are you trying to inject/register something that doesn't exist with DI?
Inner Error Stack:
Error: key/value cannot be null or undefined. A
...
What work for me, was importing "Configure" like this
import  { Configure } from 'aurelia-configuration';
Removed the curly braces { } and got it working again. Is must be related to the way the class is exported.
Please try  importing configure as:
 import  Configure  from 'aurelia-configuration';

@jhsousa Thanks for the suggestion.  It doesn't work for me.  I'm using typescript (v2.0.3) and when I try to compile with your suggested change I get the following error message:

error TS1192: Module ''aurelia-configuration'' has no default export.

You maybe be on to a work-around here, but I'm not enough of a typescript expert to know what it is (other than perhaps to hack at the d.ts)

@jhsousa I should add that if I try to transpile the typescript using the 1.0.13 version of the d.ts I actually get a different error, with or without the suggested work-around:

error TS2307: Cannot find module 'aurelia-configuration'.

Try this again now guys. I removed TypeScript compilation and hand-write the typing file. Let me know how this goes.

You're awesome, thanks @Vheissu, I'll retry this plugin and let you know in coming days

This does not happen for me in the 1.0.14 build, thanks.


Duplicate chapter after updating library

Source information
NovelUpdates
Steps to reproduce

Go to update section
Scroll down to update
Wait
Only latest chapter update will be shown

Expected behavior
Only latest chapter update will be shown
Actual behavior

The chapter I've read in the past got updated too (1st SS) and it got duplicated (2nd SS)
And the duplicated ones are considered as new entry, so I need to manually mark them as read so I won't miss which chapter I've read (3rd SS)
LNReader version
1.1.18
Android version
Android 13
Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open issue.
[X] I have written a short but informative title.
[X] I have updated the app to version 1.1.18.
[ ] If this is an issue with the app itself, I should be opening an issue in the app repository.
[X] I will fill out all of the requested information in this form.

Duplicate of #729


Taking a snapshot from nodeos that started from a snapshot results in "Peer chain is forked" for 3 minutes, then sync ok

Taking a snapshot from nodeos that started from a snapshot results in "Peer chain is forked"

Run nodeos as normal starting from genesis.  Catch up to current block.
 or "Using 3us deadline timer for checktime" or similar
Sync is fine going forward

Question: why is there a 3 minute lag time on step 7?
I was testing this on jungle. This is the log from step 5&6, then 7
main                 ] nodeos version v1.6.1
main                 ] eosio root is /root/.local/share
main                 ] nodeos using configuration file /local/docker/config/config.ini
main                 ] nodeos data directory is /local/docker/data
plugin_startup       ] start listening for http requests
startup              ] No head block in fork db, perhaps we need to replay
init                 ] database initialized with hash: 5a62ee91c44b449553f4cdf6f659c2e1f4bc9153b991b0c1b0d7de343b2d0a27
plugin_startup       ] starting chain in read/write mode
plugin_startup       ] Blockchain started; head block is #14548501, genesis timestamp is 2018-11-23T16:20:00.000
plugin_startup       ] starting chain_api_plugin
add_handler          ] add api url: /v1/chain/abi_bin_to_json
add_handler          ] add api url: /v1/chain/abi_json_to_bin
add_handler          ] add api url: /v1/chain/get_abi
add_handler          ] add api url: /v1/chain/get_account
add_handler          ] add api url: /v1/chain/get_block
add_handler          ] add api url: /v1/chain/get_block_header_state
add_handler          ] add api url: /v1/chain/get_code
add_handler          ] add api url: /v1/chain/get_code_hash
add_handler          ] add api url: /v1/chain/get_currency_balance
add_handler          ] add api url: /v1/chain/get_currency_stats
add_handler          ] add api url: /v1/chain/get_info
add_handler          ] add api url: /v1/chain/get_producer_schedule
add_handler          ] add api url: /v1/chain/get_producers
add_handler          ] add api url: /v1/chain/get_raw_abi
add_handler          ] add api url: /v1/chain/get_raw_code_and_abi
add_handler          ] add api url: /v1/chain/get_required_keys
add_handler          ] add api url: /v1/chain/get_scheduled_transactions
add_handler          ] add api url: /v1/chain/get_table_by_scope
add_handler          ] add api url: /v1/chain/get_table_rows
add_handler          ] add api url: /v1/chain/get_transaction_id
add_handler          ] add api url: /v1/chain/push_block
add_handler          ] add api url: /v1/chain/push_transaction
add_handler          ] add api url: /v1/chain/push_transactions
plugin_startup       ] producer plugin:  plugin_startup() begin
plugin_startup       ] Launching block production for 1 producers at 2019-02-18T16:46:44.220.
plugin_startup       ] producer plugin:  plugin_startup() end
plugin_startup       ] starting listener, max clients is 150
connection           ] created connection to jungle2.cryptolions.io:9876
connect              ] host: jungle2.cryptolions.io port: 9876
connection           ] created connection to jungle2.cryptolions.io:19876
connect              ] host: jungle2.cryptolions.io port: 19876
connection           ] created connection to <IP_ADDRESS>:9876
connect              ] host: <IP_ADDRESS> port: 9876
connection           ] created connection to jungle2.eosdac.io:9872
connect              ] host: jungle2.eosdac.io port: 9872
connection           ] created connection to jungle.eosn.io:9876
connect              ] host: jungle.eosn.io port: 9876
connection           ] created connection to jungle.eosbcn.com:2095
connect              ] host: jungle.eosbcn.com port: 2095
connection           ] created connection to <IP_ADDRESS>:9876
connect              ] host: <IP_ADDRESS> port: 9876
connection           ] created connection to jungle.eosmetal.io:19876
connect              ] host: jungle.eosmetal.io port: 19876
connection           ] created connection to jungle2-eos.blckchnd.com:9876
connect              ] host: jungle2-eos.blckchnd.com port: 9876
connection           ] created connection to <IP_ADDRESS>:9876
connect              ] host: <IP_ADDRESS> port: 9876
connection           ] created connection to <IP_ADDRESS>:9876
connect              ] host: <IP_ADDRESS> port: 9876
connection           ] created connection to junglepeer.eossweden.se:9876
connect              ] host: junglepeer.eossweden.se port: 9876
connection           ] created connection to <IP_ADDRESS>:9876
connect              ] host: <IP_ADDRESS> port: 9876
connection           ] created connection to p2p.testnet.jungle2.eosgermany.online:10001
connect              ] host: p2p.testnet.jungle2.eosgermany.online port: 10001
connection           ] created connection to <IP_ADDRESS>:9876
connect              ] host: <IP_ADDRESS> port: 9876
connection           ] created connection to <IP_ADDRESS>:9876
connect              ] host: <IP_ADDRESS> port: 9876
connection           ] created connection to jungle.eosdac.io:9666
connect              ] host: jungle.eosdac.io port: 9666
plugin_startup       ] starting net_api_plugin
add_handler          ] add api url: /v1/net/connect
add_handler          ] add api url: /v1/net/connections
add_handler          ] add api url: /v1/net/disconnect
add_handler          ] add api url: /v1/net/status
plugin_startup       ] starting producer_api_plugin
add_handler          ] add api url: /v1/producer/add_greylist_accounts
add_handler          ] add api url: /v1/producer/create_snapshot
add_handler          ] add api url: /v1/producer/get_greylist
add_handler          ] add api url: /v1/producer/get_integrity_hash
add_handler          ] add api url: /v1/producer/get_runtime_options
add_handler          ] add api url: /v1/producer/get_whitelist_blacklist
add_handler          ] add api url: /v1/producer/pause
add_handler          ] add api url: /v1/producer/paused
add_handler          ] add api url: /v1/producer/remove_greylist_accounts
add_handler          ] add api url: /v1/producer/resume
add_handler          ] add api url: /v1/producer/set_whitelist_blacklist
add_handler          ] add api url: /v1/producer/update_runtime_options
operator()           ] Unable to resolve junglepeer.eossweden.se:9876: Host not found (authoritative)
operator()           ] connection failed to <IP_ADDRESS>:9876: Connection refused
operator()           ] Error reading message from jungle.eosn.io:9876: Connection reset by peer
operator()           ] Peer <IP_ADDRESS>:9876 closed connection
operator()           ] connection failed to jungle.eosdac.io:9666: Connection refused
operator()           ] connection failed to <IP_ADDRESS>:9876: Connection refused
operator()           ] Error reading message from jungle2.eosdac.io:9872: Connection reset by peer
handle_message       ] peer last irreversible block 14548247 is unknown
handle_message       ] Peer chain is forked
operator()           ] sent a go away message: chain is forked, closing connection to jungle.eosmetal.io:19876
operator()           ] Error reading message from jungle.eosmetal.io:19876: Bad file descriptor
operator()           ] Peer jungle.eosbcn.com:2095 closed connection
handle_message       ] peer last irreversible block 14548247 is unknown
handle_message       ] Peer chain is forked
operator()           ] sent a go away message: chain is forked, closing connection to jungle2.cryptolions.io:9876
operator()           ] Error reading message from jungle2.cryptolions.io:9876: Operation canceled
operator()           ] Peer jungle2-eos.blckchnd.com:9876 closed connection
handle_message       ] peer last irreversible block 14548247 is unknown
handle_message       ] Peer chain is forked
operator()           ] sent a go away message: chain is forked, closing connection to <IP_ADDRESS>:9876
operator()           ] Error reading message from <IP_ADDRESS>:9876: Bad file descriptor
handle_message       ] peer last irreversible block 14548247 is unknown
handle_message       ] Peer chain is forked
operator()           ] sent a go away message: chain is forked, closing connection to p2p.testnet.jungle2.eosgermany.online:10001
operator()           ] Error reading message from p2p.testnet.jungle2.eosgermany.online:10001: Bad file descriptor
handle_message       ] peer last irreversible block 14548247 is unknown
handle_message       ] Peer chain is forked
operator()           ] sent a go away message: chain is forked, closing connection to <IP_ADDRESS>:9876
operator()           ] Error reading message from <IP_ADDRESS>:9876: Bad file descriptor
handle_message       ] peer last irreversible block 14548247 is unknown
handle_message       ] Peer chain is forked
operator()           ] sent a go away message: chain is forked, closing connection to jungle2.cryptolions.io:19876
operator()           ] Error reading message from jungle2.cryptolions.io:19876: Bad file descriptor
handle_message       ] peer last irreversible block 14548247 is unknown
handle_message       ] Peer chain is forked
operator()           ] sent a go away message: chain is forked, closing connection to <IP_ADDRESS>:9876
operator()           ] Error reading message from <IP_ADDRESS>:9876: Operation canceled
...
deadline_timer       ] Using polled checktime; deadline timer too inaccurate: min:1us max:9999us mean:587us stddev:1914us

Maybe the changes in 1.8 to force the snapshot to be on LIB have fixed this issue?

@matthewdarwin
I can not replicate this issue on 2.0.x ( did not see msg: "Peer chain is forked"), and nodeos can start with snapshot (after 2 restarts from snapshot) and sync up with mainnet fairly quick.
My first step is different from what you described (I used a snapshot with mainnet, instead of from genesis). Not sure, that could be an issue of failing to replicate this issue.
Could you please help to replicate this scenario on 2.0.x?  thanks a lot!

This issue is more than 1 year old.  So probably no longer relevant... many changes since then.

Checking on v1.8 now, and will close the issue if it can not be replicated there.

Tried on v1.8, see nodeos can sync successfully with mainnet with snapshots (tried 2 snapshots),  close this ticket for now.


how to write NFC android package type

if write type text is
function buildTextPayload(valueToWrite) {     const textBytes = strToBytes(valueToWrite);     // in this example. we always use en     const headerBytes = [0xD1, 0x01, (textBytes.length + 3), 0x54, 0x02, 0x65, 0x6e];     return [...headerBytes, ...textBytes]; }
how to write nfc tag type android package, so when i scan nfc tag from my device going to the apps
and how to write more than one data .
first data is text type, second is android package

Hi, you can try the following example:
import NfcManager, {Ndef} from 'react-native-nfc-manager'
...
let bytes = Ndef.encodeMessage([
    Ndef.textRecord("hello, world"),
    Ndef.androidApplicationRecord("my-app-pkgname"),
]);

NfcManager.requestNdefWrite(bytes)
    .then(() => console.log('write completed'))

Thanks!

hi, it's worked ,
thank you for your help


webView example no longer works in remote

The JS file is never loaded, this error is thrown
Unable to read file (Error: [UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//"))
    at v.readFileStream (file:///C:/Users/becolem/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js:1539:7)
    at process._tickCallback (internal/process/next_tick.js:68:7)

Issue is reproducible in WSL remote and SSH
Note the cat GIF loads OK, as that's an external HTTP URL, but the JS file referenced from the extension (media directory) doesn't load due to the above error, so the line counter never goes up
I suspect the issue is caused by the remote extension(s). Issue here
https://github.com/microsoft/vscode-remote-release/issues/1643

Duplicate of https://github.com/microsoft/vscode/issues/82336


Start-GitlabJob without Variables

Since the change to add the ability to pass variables it appears that if you just want to start a job, it produces a body that gitlab just straight throws away and reports nothing
running Start-GitlabJob with -Debug and no variables specified creates this output
{
    "job_variables_attributes": {}
}

And will silently fail to start the job.
API documentation shows the body for job_variables_attributes is an array []
{
  "job_variables_attributes": [
    {
      "key": "TEST_VAR_1",
      "value": "test1"
    },
    {
      "key": "TEST_VAR_2",
      "value": "test2"
    }
  ]
}

if job_variables_attributes is set to an empty array, then it works
{
    "job_variables_attributes": []
}

Resolved by this change


refresh_node() does nothing for AJAX-loaded trees

You can see this by trying to refresh a node in the AJAX tree on the jstree web site.

Go here in Chrome: https://www.jstree.com/docs/json/
Open the developer console (F12)
Run this command in the console:
$('div.demo.jstree-5').jstree(true).open_node('j5_1')
As you will see under the "Using AJAX" section the "Root 1" folder opens and loads the subnodes
Run this command in the console:
$('div.demo.jstree-5').jstree(true).refresh_node('j5_1')
Nothing happens, there is no network activity

This is because refresh_node will only reload any opened children inside the specified node, not the node itself (as specified in the docs).
Best regards,
Ivan

So this behavior changed from 3.2.1 to 3.3.0?

Looks like this is fixed in 3.3.1, thanks!


Allow specifying certain types we shouldn't derive/impl PartialEq for

Add --no-partialeq <regex> and Builder::no_partialeq(String) to supply regexes for matching against types that we should not derive or implement PartialEq for.
Adding this feature involves:

[ ] Adding a new RegexSet member to bindgen::Builder (similar to the whitelisted_types set).

[ ] A Builder method to add strings to that RegexSet.

[ ] Plumbing in src/options.rs to convert --no-partialeq <regex> CLI flags into invocations of the builder method.

[ ] Making the MonotoneFramework::constrain function in src/ir/analysis/derive_partialeq.rs check if the given item is explicitly marked not to be Partialeq, and if so, inserting it into the self.cannot_derive_partialeq set via return self.insert(id).

[ ] Tests!

[ ] When the no-partialeq type is transitively referenced by a whitelisted item

[ ] When the no-partialeq type is explicitly whitelisted

[ ] When the no-partialeq type is marked opaque

I'd like to try adding this one.
@highfive: assign me

Hey @alexeyzab! Thanks for your interest in working on this issue. It's now assigned to you!


MustAsync changes in v7?

I have just updated my project to dotnet core 2.0 and with that i have updated to the latest verison of fluentValidation.
before updating, i had the following code which compiled fine...
RuleFor(e => e.ParentId).MustAsync(ParentIsSelfOrChildRuleAsync).WithMessage("The pages parent cannot be itself or any of its children.");

public async Task<bool> ParentIsSelfOrChildRuleAsync(Page page, long? parentId)
{
    var pages = await _context.Page.Where(e => e.DeleteLogId == null).AsNoTracking().ToListAsync();

    return !ParentIsSelfOrChild(pages, page.Id, page.ParentId);
}

But now i have upgraded, it doesnt seem to compile and i get an exception saying

Argument 2: cannot convert from 'method group' to 'Func<long, CancellationToekn, Task>'

I am guessing that the actual async function has the wrong signiture, but i cannot find anything on here, as to what it should be.  Can you help please?

never mind, changing to public async Task<bool> ParentIsSelfOrChildRuleAsync(Page page, long? parentId, CancellationToken cancellationToken) seems to compile.  Can you confirm this is right?

No as far as I'm aware MustAsync has not changed for v7. These are the available overloads:
MustAsync<T, TProperty>(this IRuleBuilder<T, TProperty> ruleBuilder, Func<TProperty, CancellationToken, Task<bool>> predicate)

MustAsync<T, TProperty>(this IRuleBuilder<T, TProperty> ruleBuilder, Func<T, TProperty, CancellationToken, Task<bool>> predicate)

MustAsync<T, TProperty>(this IRuleBuilder<T, TProperty> ruleBuilder, Func<T, TProperty, PropertyValidatorContext, CancellationToken, Task<bool>> predicate)

Yes, that's right. All async methods must have a CancellationToken in the signature. That was introduced somewhere back in 6.x

Thats fine, I think i may have been actually using 5.6.2. Thank again


Remove ass/donkey from animal dictionary

Fixes #229

Thank you for doing this. Will you need to cut a release? I am pulling in the package through yarn

Thank you for doing this. Will you need to cut a release? I am pulling in the package through yarn

Yep will need to release once it's in main

Yep will need to release once it's in main

Thanks again

Thanks again


Java security error - UnrecoverableKeyException: Cannot recover key

Upgrading Wiremock results in a failure to read an existing key file. I'm logging this more as informational rather than requesting investigation. I'll continue posting information I've identified about my situation here.
This key file has been functioning for the following versions (currently tested)

2.22.0
2.26.3

It is not working with these versions (currently tested):

2.27.2

Command:
-jar C:\wiremock-standalone-2.22.0.jar --https-port 11020 --port 10020 --https-keystore C:\keyfile.jks --keystore-password passwordtext  --max-request-journal-entries 512
Key Generation (Partial code written in D):
auto pid = spawnProcess(["openssl", "pkcs12", "-export", "-in", "keyfile.crt", "-inkey", "keyfile.key", "-certfile", "keyfile.crt", "-out", "keyfile.p12"]);

wait(pid);

pid = spawnProcess([javaLocation.buildPath("keytool"), "-importkeystore", "-srckeystore", "keyfile.p12", "-srcstoretype", "pkcs12", "-destkeystore", "keyfile.jks", "-deststoretype", "JKS"]);

Some items in research that came up was utilizing different Java versions (32bit vs 64bit) for the generated key and usage, as this is an issue raised by changing the Wiremock version this seems unlikely to be happening.

I debugged a bit and found out that there's a new property in WiremockConfiguration called keyManagerPassword. So now you have to specify both the keyStorePassword and the keyManagerPassword.
The keyStorePassword is the password of the keystore, while the keyManagerPassword is the password of the keys inside the keystore.
Tomcat's default behavior is to use the keystore password as key password if the key password is not set: https://github.com/apache/tomcat/blob/630adb6272beb02cd709465441e841f2d362b6fb/java/org/apache/tomcat/util/net/SSLUtilBase.java#L278
The JDK System Properties for the keystore and password don't even offer a property for the key password and just assume that it's always the same as the keystore password.
I would suggest implementing the Tomcat logic for Wiremock in order to keep the compatibility.

@bergerst thanks for this. Adding keyManagerPassword as below totally resolved this issue for me.
wireMockRule = new WireMockClassRule(options()
                .port(8081)
                .httpsPort(442)
                .keystorePath(PATH_TO_STORE)
                .keystorePassword("password")
                .keyManagerPassword("password"));

@bergerst thanks for this. Adding keyManagerPassword as below totally resolved this issue for me.
wireMockRule = new WireMockClassRule(options()
                .port(8081)
                .httpsPort(442)
                .keystorePath(PATH_TO_STORE)
                .keystorePassword("password")
                .keyManagerPassword("password"));

This also fixes the issue on the command line arguments
--https-port 11020 --https-keystore  --keystore-password
 --key-manager-password


Remote machine

Add possibility to remote connection and manage remote containers.

This also applies for docker-machine usage on macs.


Treat production and development error objects the same

At some point we introduced a split in how we pass errors around in
dev versus prod, and instead of passing the original error object
we began to modify it in production. We also ran an additional
loadGetInitialProps(), which caused anything in _error's initial
props method to be loaded twice client-side (first with the previous
path, then with the new path, but both with the same error).
It's unclear to me why this was necessary in the first place, so I've
returned to passing the same error object to both the dev and prod
error views. cc/ @arunoda
This resolves #1814 by passing the actual error to the production
_error page.
Resolves #1814

The current code is necessary because we treat production and dev errors in two different ways.
Two different error overlays.
In production we don't want to show more info.
If you need custom error handling, I suggest to do it manually in the app layer rather replying on Next's error reporters.

@arunoda I guess I don't see the necessity of purposefully not passing the error in production. Maybe you want to pass an error object so you know what error screen to show? Generic 500 vs. something else. Maybe you want to display a little message in production, in certain cases.
In any case, it's opt in. You don't have to use the error object, you can just show a generic page.
Hoping you can reconsider, because this is something we absolutely need in order to use Next.

In any case, using Next's error reporters is highly useful because you can use getInitialProps in _error to customize the error viewmodel... but that's only useful if you have real data. As it is now, I can only differentiate between generic 500s and 404s.

@arunoda, for some added context, here is how we're using error messaging in production. This is a simplified version of our _error.js:
import _ from 'lodash';
import React from 'react';

function NotFoundMessage() {
    return

            I do not know what you were looking for, but it is not here.

;
}

function UnauthorizedMessage() {
    return

            You cannot do that.

;
}

function userDeletedMessage() {
    return

            That user was deleted.

;
}

const ErrorView = (props) => {
    if (props.unauthorized) {
        return UnauthorizedMessage();
    } else if (props.userDeleted) {
        return userDeletedMessage();
    }

    return NotFoundMessage();
};

export default class ErrorPage extends React.Component {
    static getInitialProps({ err }) {
        let unauthorized = false;
        let userDeleted = false;

        // Did the error tell us that the user attempted an unauthorized action?
        if (_.get(err, 'data.type') === 'unauthorized') {
            unauthorized = true;
        }

        // Did the error tell us that the user was deleted?
        if (_.get(err, 'data.type') === 'user_deleted') {
            userDeleted = true;
        }

        return {
            unauthorized,
            userDeleted,
        };
    }

    render() {
        return

            {ErrorView(this.props)}

;
    }
}

I feel like this is a really powerful way to use _error.js to handle a variety of error states that may come from busted API calls in individual pages' getInitialProps. There's a variety of ways APIs might error, and it's potentially necessary to respond to them in different ways.

@arunoda @rauchg @timneutkens thoughts on the above? Hoping this doesn't fall off the radar due to it being closed.
Ultimately we can always maintain a fork to add this functionality back in if you all disagree, but I'm trying hard to avoid that; we want to invest more into NextJS at Thumbtack, and forking just makes that much more difficult...


fix: complete miss attribute for map && list in avro schema

This PR is preparing for #131. We can merge it when Avro 0.17 released. See  https://issues.apache.org/jira/browse/AVRO-4001
The main fix in avro 0.17 is the missing attribute in the map and list schema. I use the main branch to fix them first:

serialize/deserialize the element id in list
key-id, value-id in map
array map, for now, we can detect using the LogicalType attr in avro array schema

Thanks @ZENOTME for this pr, do you mind to postpone the review after avro-rs 0.17 release? I'm hesitating to add a dependency of an unreleased version.

LGTM. I'm just sending this PR in advance.🤣

@ZENOTME can you rebase the PR? :)

Sure I will fix it later. But this PR is still blocked by avro0.17.

Hi, @Fokko is currently working on the new Avro release and it will be available soon. We're almost there! ❤

Thanks for work on the new Avro by @Fokko! I have updated Avro to 0.17 and unit test. PTAL cc @liurenjie1024 @Xuanwo @Fokko


Request API to get render boundaries of jsPDF.html method

In our product we using jsPDF.fromHtml method to render html in pdf. But fromHtml is legacy now (and supports rendering of a very limited set of html markups)
For proper work our library we need to get coordinates of rendered html. fromHtml provides result object in it's callback with y property. Is it possible to add a similar functionality to jsPDF.html method?

Up

Closing this in favor of #2926.


Search doesn't work

There are at least two pages involving "bobcat": Bobcat and Bobcat Canyon.  However, typing "bobcat" into the search bar produces no quick results:

And, searching for "bobcat" produces no results:

The issue is that sphinx isn't starting when the container starts.  Works fine if you manually run:
searchd --config /etc/sphinxsearch/sphinx.conf >> /var/log/sphinxsearch/sphinx-startup.log 2>&1

These are logs I've found so far:
[Mon Jun  5 04:09:15.408 2023] [56] using config file '/etc/sphinxsearch/sphinx.conf'...
Sphinx 2.2.11-id64-release (95ae9a6)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)

WARNING: key 'sql_query_info' was permanently removed from Sphinx configuration. Refer to documentation for details.
WARNING: key 'enable_star' was permanently removed from Sphinx configuration. Refer to documentation for details.
WARNING: key 'charset_type' was permanently removed from Sphinx configuration. Refer to documentation for details.
WARNING: key 'max_matches' was permanently removed from Sphinx configuration. Refer to documentation for details.
listening on <IP_ADDRESS>:9312
Sphinx 2.2.11-id64-release (95ae9a6)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)

WARNING: key 'sql_query_info' was permanently removed from Sphinx configuration. Refer to documentation for details.
WARNING: key 'enable_star' was permanently removed from Sphinx configuration. Refer to documentation for details.
WARNING: key 'charset_type' was permanently removed from Sphinx configuration. Refer to documentation for details.
WARNING: key 'max_matches' was permanently removed from Sphinx configuration. Refer to documentation for details.
precaching index 'wiki_main'
WARNING: index 'wiki_main': preload: failed to open /var/data/sphinx/wiki_main.sph: No such file or directory; NOT SERVING
precaching index 'wiki_incremental'
WARNING: index 'wiki_incremental': preload: failed to open /var/data/sphinx/wiki_incremental.sph: No such file or directory; NOT SERVING
FATAL: no valid indexes to serve
Sphinx 2.2.11-id64-release (95ae9a6)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)

WARNING: key 'sql_query_info' was permanently removed from Sphinx configuration. Refer to documentation for details.
WARNING: key 'enable_star' was permanently removed from Sphinx configuration. Refer to documentation for details.
WARNING: key 'charset_type' was permanently removed from Sphinx configuration. Refer to documentation for details.
WARNING: key 'max_matches' was permanently removed from Sphinx configuration. Refer to documentation for details.

This is because Sphinx isn't starting. There are two steps to starting Sphinx:
a) run the indexer to create the index files
b) start the searchd daemon to field search requests
Then periodically do this (currently every 30 mins):
c) run the indexer with the --rotate option to update with new results
a) and b) are set in the system_start.sh file, and c) is set in the sphinx.cron job.
The specific error is that searchd can't find the two files output by the indexer -- wiki_main.sph and wiki_incremental.sph. However as Coops noted, entering the command to start searchd at some point in the future after system boot, and it works correctly.
I have not seen this issue before in dev. To diagnose, we should:

restart the prod server (preferably from a new image build) and see if searchd fails to start
if it failed, then check in the /var/data/sphinx folder to see if the two files are there or not. This should be done right after the system boots, and definitely before the indexer --rotate command is run which happens via the cron job on the half hour.

The other warnings seen in the logs (also seen in the log snippet that Coops posted above) are due to deprecated settings -- I have a branch to remove these named sphinx_fixes.

https://github.com/RopeWiki/app/pull/54 is hack to resolve this.


Support local rf for pipeline

What problem does this PR solve?
Issue Number: ref #7275
Problem Summary:
What is changed and how it works?

rename PipelineExecutorStatus::active_event_count, PipelineExecutorStatus::onEventSchedule and PipelineExecutorStatus::onEventFinish to PipelineExecutorStatus::active_ref_count, PipelineExecutorStatus::incActiveRefCount and PipelineExecutorStatus::decActiveRefCount
support local rf in pipeline model just like https://github.com/pingcap/tiflash/pull/7218
add unit test for lm and rf in pipeline model
add fullstack test for rf

https://github.com/pingcap/tiflash/blob/4ecf3cd7649f0597c540cdbfe4ea609f26d7d169/tests/tidb-ci/enable_pipeline
Because the test file is also referenced by the pipeline's fullstack test directory, rf's fullstack test will run both pipeline and non-pipeline

Check List
Tests

[ ] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/run-unit-test

/run-all-tests

/rebuild

/run-integration-test

/run-all-tests

/rebuild

/run-integration-test

/run-all-tests

/run-integration-test

/run-all-tests

/run-integration-test

/approve

/run-unit-test


[FLINK-24477][flink-connectors] - Add mongodb sink

What is the purpose of the change
Adding a mongodb sink
Brief change log

Added MongoDbSink and MongoDbSinkWriter
Added a new module flink-connector-mongodb

Verifying this change
This change added tests and can be verified as follows:

Added MongoDbSinkITCase as integration test for the MongoDB sink

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (yes)
If yes, how is the feature documented? (JavaDocs)

Subsumed by https://github.com/apache/flink-connector-mongodb/pull/1.


How to make it support windows platform?

purescript and purescript-python works smoothly for Windows.
npm install -g purescript
npm install -g spago
pip install -U purescripto # this will download pspy executable for your virtualenv

thanks


Provide a way to customize the ObjectMapper used in AMCB

AbstractMessageChannelBinder uses a custom ObjectMapper. It has code to check if the application provides an ObjectMapper. However, since AMCB is in a binder child context, it doesn't see beans provided by the application, which is only available in the parent context. See this for more context. Consider a way for the applications to circumvent this limitation.

Why do we need it? I mean why do we need to expose its customisation?


add useService to react template

xstate's spawn is fine calling the xstate-compiled machine, useService was not.

Tested, and working. @redappleorigin could you add a changeset with yarn changeset in root?

Once that's in I'll merge. Thanks for this, great work 👍

Yes sir, I just need to figure out how to do that first.

@mattpocock let me know if I did this correctly.

@redappleorigin Have released this in the latest 'next' version

@redappleorigin Can you please help me out how is this intended to be used?  https://github.com/mattpocock/xstate-codegen/issues/48


Add code coverage section

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (d0a2993) 71.16% compared to head (0da128d) 71.32%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff              @@
##             master      #25      +/-   ##
============================================
+ Coverage     71.16%   71.32%   +0.16%
- Complexity     3522     3531       +9
============================================
  Files           351      351
  Lines         17299    17299
  Branches       2672     2672
============================================
+ Hits          12311    12339      +28
+ Misses         3932     3902      -30
- Partials       1056     1058       +2

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


OSError: [WinError 126] The specified module could not be found

I compile the code in Window 10 and when I run the provided example, it keeps telling me this error: OSError: [WinError 126] The specified module could not be found

Yes, that line simply tried to figure out the number of CPU sockets in your machine.  Most likely the answer is 1, and even if that's not right, you can still use 1 with good results.

Considering this solved, but please reopen if not.  :)


[discussion] dynamic merge properties to type(or interface) by its specific key

Actually it is a question, but I think it may refers to type system of TypeScript, so I post it here.
The problem is how to dynamic merge properties to type(or interface) by its specific key.
Assuming we are creating a React component named Button. It takes a component prop, and will use this value as component actually rendered. Its implementation may looks like this:
interface ButtonProps {
  component: keyof React.ReactHTML
}

class Button extends React.Component<ButtonProps> {
  render() {
    const { component: Component, ...rest } = this.props
    // give it a button style
    // `component`'s value could be button, a, input, etc
    return <Component {...rest} />
  }
}

we need native HTML element's props merged to ButtonProps.
For example, the usage examples below should be all type safe.
<Button component="button" type="submit">A Button
<Button component="a" href="/">A Link Button
<Button component="input" type="submit" value="An input button" />

Which means, if component === 'a', ButtonProps should be
{ component: React.ReactHTML } & React.AnchorHTMLAttributes<HTMLAnchorElement>

if component === 'input', ButtonProps should be
{ component: React.ReactHTML } & React.InputHTMLAttributes<HTMLInputElement>

How to figure this out in TypeScript?

My thoughts:
type PropsOfHtmlTag<T extends keyof React.ReactHTML> =
React.ReactHTML[T] extends React.DetailedHTMLFactory<infer R, any>
  ? R
  : never

interface ButtonProps {
  component: keyof React.ReactHTML
}

type DynamicProps = PropsOfHtmlTag<ButtonProps['component']>

What we need is to merge ButtonProps and DynamicProps

I think this is possible:
import * as React from "React";

type AttributesForTag = { [K in keyof React.ReactHTML]: React.ReactHTML[K] extends React.DetailedHTMLFactory<infer Attr, any> ? Attr : never; };

class Button<K extends keyof AttributesForTag> extends React.Component<{ component: K } & AttributesForTag[K]> {
    render() {
        const { component, ...rest } = this.props as any;
        return React.createElement(component, rest);
    }
}

const x = <Button component="button" type="submit" />

Is it also possible to just make the element be one of the props?
class Button2 extends React.Component<{ component: JSX.Element }> {
    render() { return this.props.component; }
}
<Button2 component={<button type="submit" />} />

@andy-ms Thanks for your response. I tried your example in VSCode:

Since HTML tag a has no value, I think the last line should throw an error but not. Tried to go to value key's definition then it shows:

Seems it merges all HTML tags' attributes? Then we got multiple definitions

it works for me:

@pd4d10 Darn, it must be inferring K = string and allowing all elements. This has come up before, see  #27808. You'll at least get correct behavior if you remember to provide an explicit type argument: <Button<"a"> component="a" value="submit" />;.

@nkappler @andy-ms Thanks. Closing since the question is answered clearly


MINIFICPP-2126 Use sccache and Ninja in Windows CI

Compile requests                    522
Compile requests executed           522
Cache hits                          499
Cache hits (C/C++)                  499
Cache misses                         23
Cache misses (C/C++)                 23

Build times before: around 1:50-2:40 hours
after: 40 minutes
I kept the multiple commits that show the trial/errors, they will be squashed away at merge anyway. You can check the runs of each commit by looking at the commit history of the branch on my fork.
The cache/restore behavior of the sccache-action was not clear from the docs, and it didn't seem to work out of the box, so I added a separate cache action, targeting the sccache cache directory.
Replaced the fiddling with PATH with a more robust solution, detecting the VS installation using vswhere (preinstalled on the runners), and calling the developer command line initializer batch file, making the shell effectively the same as the "x64 Native Tools Command Prompt for VS 2019". See: https://github.com/microsoft/vswhere/wiki/Find-VC
Changed the build tool to ninja, because it seems to have saved about 20 minutes, and it worked without issues after changing to a VS proper developer command line.
Submitted INFRA ticket to allow the two new steps: https://issues.apache.org/jira/browse/INFRA-24646

mozilla-actions/sccache-action: installs and sets up sccache. The maintainer is affiliated with Mozilla, the developer of sccache.
seanmiddleditch/gha-setup-ninja: installs Ninja. This seems to be the most popular similar step, and I've reviewed the source code to confirm that it doesn't do anything nasty. It's using a proxy server, but the server is operated by Microsoft, probably Github related.

Thank you for submitting a contribution to Apache NiFi - MiNiFi C++.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with MINIFICPP-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically main)?

[ ] Is your initial contribution a single, squashed commit?

For code changes:

[x] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[x] If applicable, have you updated the LICENSE file?
[x] If applicable, have you updated the NOTICE file?

For documentation related changes:

[x] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check GitHub Actions CI results for build issues and submit an update to your PR as soon as possible.

Good job! It seems we only need one more step, to allow these newly added github actions in the apache repository<EMAIL_ADDRESS>and seanmiddleditch/gha-setup-ninja@v3 are not allowed to be used in apache/nifi-minifi-cpp.

Updated the original post with the INFRA ticket.


Understand the code.

Hi guys, I'm self-learning about this project. So I have difficulty understanding some code/setting/meaning in this project.
I hope you can explain some questions for me. Thank ^^
My first question is What is the offset? Why we only need 1 xia offset for all data point?

From my understanding, offset in animation is something to make the rotation smoother, but I'm not sure its purpose in this project.
https://github.com/DeepMotionEditing/deep-motion-editing/blob/19604abdc0ead66f8c82d9211b8c5862c6a68089/style_transfer/global_info/skeleton_CMU.yml#L3-L34

The second is why we have to update transform by its parent transform?
https://github.com/DeepMotionEditing/deep-motion-editing/blob/19604abdc0ead66f8c82d9211b8c5862c6a68089/utils/animation_data.py#L34-L35
Moreover, I hope you can give me some good books to learn about the math behind skeleton in animation. Because when I search in google, most of the result only gives me about code from Unity without math equation behind it.

Hi, the "offsets" represent the bones of the skeleton. You can think of it as a set of 3D vectors, where each vector connects between two joints. In the style transfer work, we assume that the skeleton is fixed, so we need one set of "offsets".
The reason for the "parent" transform is that in animation it's common to work in a hierarchical structure (of joints).
To get more details, I suggest learning about the BVH representation (the common format for representing skeletal animations). This post shares some good resources for that. Good luck!

Thank you for your advice ^^


?replicaSet=foo style urls don't work

Hoping you might have some insight on this one; when I use connect-mongodb-session I pass it the same db config that I use to connect to mongoose.  In one case, that looks like this:
mongodb://devbox.02.mydomain.com:27017,devbox.01.mydomain.com:27017/mydbname?replicaSet=foo

When I do this, everything works fine in mongoose, but connect-mongodb-session gives me Error connecting to db: no valid seed servers in list
Any idea why this isn't working?

Hmm are you connecting from the same process as mongoose? Can you actually connect to those boxes from your machine? That error only occurs when the driver couldn't connect to the boxes or if the repl set is not in a valid state

I am connecting in the same process; basically the file that connects mongoose passes back the db configuration and about 10 lines later (in terms of actual execution) uses the same URI and options with connect-mongodb-session.
The really weird part is that after submitting this ticket, I found that I can connect just fine if I use the old replicaset syntax:
mongodb://devbox.02.mydomain.com:27017,mongodb://devbox.01.mydomain.com:27017/mydbname

As soon as I add ?replicaSet=foo it stops working, but the other one works fine.  Same process.  I'm completely baffled, was hoping you'd have an idea :-/

What do your connection options look like? Also, are you sure the replicaSet specified in the URI matches the replica set name?

Exactly like the examples in this ticket; I changed hostnames and replicaset names, but that's it.  Yes, I'm absolutely certain that the replicaset name matches; I spent 30 minutes trying every possible thing I could think of, so those are the first things I checked =]
The other things that are passed in as options are SSL certificates and we set the poolSize.  The condensed code looks roughly like this:
var dbURI = "mongodb://devbox.02.mydomain.com:27017,devbox.01.mydomain.com:27017/mydbname?replicaSet=foo";

var mongoCert = fs.readFileSync("/path/to/ssl_crt"));
var mongoKey  = fs.readFileSync("/path/to/ssl_key"));
var mongoCA   = fs.readFileSync("/path/to/ssl_ca"));
var opts = {
    replSet: {
        ssl:true,
        sslKey: mongoKey,
        sslCert: mongoCert,
        sslCA: mongoCA,
        socketOptions: {},
        poolSize: 5
    }
};

// Connect with mongoose; this works
mongoose.connect(dbURI, opts);

// Configure the session store, this does not work
var mongoSessionStore = new MongoDBStore({
    uri: dbURI,
    connectionOptions: opts,
    collection: 'sessions2'
});

I think you may want to use:
var opts = {
    replSet: {
        ssl:true,
        sslKey: mongoKey,
        sslCert: mongoCert,
        sslCA: mongoCA,
        socketOptions: {}
    },
    server: {
        ssl:true,
        sslKey: mongoKey,
        sslCert: mongoCert,
        sslCA: mongoCA,
        socketOptions: {}
    }
};

mongoose does a little extra syntactic sugar on top of options so you don't have to worry about replSet options vs server options, whereas connect-mongodb-session just goes to the driver directly.

Well that's really weird; I used to always pass replSet, server, and mongos objects in there, but when I did it broke the mongoose connection, so I started detecting a replicaSet url in my config and removed the other two in that case; maybe I just needed to remove mongos?  I'll try it.

That's really strange. I generally try to specify everything in the connection string where possible, but unfortunately things like sslKey, etc. are not supported in the mongodb driver's connection string parser at the moment... Try removing mongos, that may help.

this is working; I honestly don't remember what all it was. =] I think it may have been the whole replset vs replSet thing.


Training time of Unpaired Day2night

Thanks for your impressive work! I'm curious about the training time required for the Unpaired Day2Night model on the BDD100K.
It took me around 1 day on a single A100 GPU for only 1k steps. This training time seems pretty long, and I have a feeling there might be some problems causing it to take so much time. Could you help me figure out what's going on?
Here are some of the training parameters:
--learning_rate="1e-5" --max_train_steps=25000
--train_batch_size=1 --gradient_accumulation_steps=1
--enable_xformers_memory_efficient_attention --validation_steps 250
--lambda_gan 0.5 --lambda_idt 1 --lambda_cycle 1

I'm also training on the BDD100K Day2Night dataset. It takes about 16 hours on four 4090 GPUs to complete 25,000 training steps.

@ShenZheng2000 did you train with 512x512? Does it fit into the 24GB of the 4090?

@tfriedel
No, training with 512x512 resolution doesn't fit into 24GB of memory; it may require 48GB or more.
However, I experimented with resize_286_randomcrop_256x256_hflip and found that:

it fits within 24GB
it takes around 16 hours to complete
the reproduced results are promising, similar to the pretrained results.

@ShenZheng2000
Did you get good results, even with this bug: https://github.com/GaParmar/img2img-turbo/issues/56 present?
I applied the PR for this with a custom dataset but it stopped improving after about 2000 steps.
I think the bugfix may either not be complete, or I shouldn't have used grad accumulation. I have 4 GPUs and according to the paper they used batch size 8, so I thought with grad accum steps = 2 I'd have the same effect. Or maybe my dataset is more challenging.

I'm also training BDD100K Day2Night. It takes about 16 hours on four 4090 GPUs to complete 25,000 training steps.

@ShenZheng2000  Hello, have you successfully trained the "sunny2rainy" model? I am currently working on this as well, using my own dataset for training. However, the rainy style in the resulting rainy images, such as the road surface, is not very pronounced. Have you encountered the same issue? Do you have any suggestions regarding this?

Thanks for your impressive work! I'm curious about the training time required for the Unpaired Day2Night model on the BDD100K.
It took me around 1 day on a single A100 GPU for only 1k steps. This training time seems pretty long, and I have a feeling there might be some problems causing it to take so much time. Could you help me figure out what's going on?
Here are some of the training parameters: --learning_rate="1e-5" --max_train_steps=25000 --train_batch_size=1 --gradient_accumulation_steps=1 --enable_xformers_memory_efficient_attention --validation_steps 250 --lambda_gan 0.5 --lambda_idt 1 --lambda_cycle 1

Hi, have you solved this problem? I'm also using A100 GPU. The training time is just like yours. I'm also using train_batch_size=1. Or do you have any suggestions?


Prevent nulls and undefined being sent to the server

Description
I can't work out how to replicate this using the dev server but I've updated the code so it can't send null or undefined mri's to the server.
Testing instructions
Add a set up instructions describing how the reviewer should test the code

Review code
Check Travis build
Review changes to test coverage
Run the site and check that you can still move blocks on the layout

Agile board tracking
connect to #316
closes #316

Codecov Report

Merging #377 into version1 will increase coverage by 0.01%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##           version1     #377      +/-   ##
============================================
+ Coverage     84.01%   84.02%   +0.01%
============================================
  Files            77       77
  Lines          2803     2805       +2
  Branches        490      490
============================================
+ Hits           2355     2357       +2
  Misses          396      396
  Partials         52       52

Impacted Files
Coverage Δ

src/malcolm/malcolmActionCreators.js
91.48% <100%> (+0.37%)
: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 eb3b82c...6dc5593. Read the comment docs.


Fixed the CSS prop name issue of styled-component

Description
As described in #264, we will got unexpected situation of CSS class name when using with styled-component.
The root cause is styled-component uses css prop too.
And for the better semantics of prop, we should replace css prop with containerClassName and inputClassName props.
Types of changes

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

Checklist:

[x] I have used ESLint & Prettier to follow the code style of this project.
[x] I have updated the documentation accordingly.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Coverage remained the same at 94.037% when pulling e0af43d9ebf996962b052f0b759941e04f76e333 on fix/t264 into ea1c29fac6857aab977a23c4caa935e31af78069 on master.


fix: redirect status code

Description
With this PR, if you specify status code for redirect, the code is surely used in the response.
$routes->addRedirect() specifies 302 by default. So 302 will be used by default.

fix: specified code may not be used in redirect
fix: default value for $code in RedirectResponse::route()

Ref #3057
Checklist:

[x] Securely signed commits
[ ] Component(s) with PHPDoc blocks, only if necessary or adds value
[ ] Unit testing, with >80% coverage
[ ] User guide updated
[x] Conforms to style guide

The default redirect code should be 302.
There should be no code substitution inside the handler.

301 and 302 for a redirect without data (GET -> GET).
308 and 307 for data redirect (POST -> POST).
303 for redirect after request processing (POST -> GET)

There should be no code substitution inside the handler.

Why?
It is done since v3.
https://github.com/bcit-ci/CodeIgniter/blob/63d037565dd782795021dcbd3b1ca6f8c8a509e4/system/helpers/url_helper.php#L522

I hope you fix it, because the POST -> POST redirect in the current implementation will replace 307 or 308 with 303.

I think it will be fixed by this PR.
See https://github.com/codeigniter4/CodeIgniter4/pull/7445/commits/4da5f0d8761a37d74699a2a39a3bae57fc21b922#diff-e3e8e9e1b70160a0f569050d2f248d3df024213a3bd66909a3d0308024b60638

Why? It is done since v3. https://github.com/bcit-ci/CodeIgniter/blob/63d037565dd782795021dcbd3b1ca6f8c8a509e4/system/helpers/url_helper.php#L522

There is a lot written in CI 3. But that doesn't mean it's right.
Don't get too attached to things. Learn to let go(с) Ivan Vanko.

There is a lot written in CI 3. But that doesn't mean it's right.

Right or wrong is just a direction. If you want to go to the North Pole, it is right to go north.
It is not right to go south.
Yes, if there is a code in CI3, it does not means the code is right code.
But if we change the code, apps might break.
So more careful consideration is needed to make the change, and
we need to show the reason why.
I just want you to show why your opinion is right.

I will repeat what I said above.

The 303 response code implies that a POST request was sent, processed, and the processing result can be obtained at the specified URL via a GET request.
Response code 307 implies that the resource was found but temporarily moved to the specified URL, so you need to use the same method with which the request was sent and resend the request body.

Regarding code CI3.
The code assumes that if the response code is not passed as an argument, then any non-GET request is a POST request (given the link to the wiki). That is, it is processed and the result can be obtained from the specified link through the GET method.
The HEAD and OPTIONS methods are not GET, which means that they will have a 303 response code, but this makes no sense when redirecting using the GET method.
For a GET request, it makes no sense to use 307 (308) response codes, since a GET request does not imply a request body. It makes more sense to use 302 (301).
Conclusion.
We can set the default value of the code argument to 303. And remove the condition for defining the response code.
For non-GET methods, the behavior will not change. Since they are already redirected to 303.
For the GET method, the behavior will not change. Since the body of the GET request is not provided.

Maybe we could add https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections as a reference for redirect() method? I think this could be useful regarding the rules we're following.
IMO this is a good change.

Added docs.

Rebased to resolve conflicts, and tweaks the added note.

@michalsn Thank you.


[SPARK-17276][Core][Test] Stop env params output on Jenkins job page

https://issues.apache.org/jira/browse/SPARK-17276
What changes were proposed in this pull request?
When trying to find error msg in a failed Jenkins build job, I'm annoyed by the huge env output.
The env parameter output should be muted.

How was this patch tested?
Tested manually on local laptop.

Test build #64521 has started for PR 14848 at commit 247e852.

LGTM though SQLQuerySuite has exactly the same construction and could use a similar treatment.

sure I'll change SQLQuerySuite too

Test build #64521 has finished for PR 14848 at commit 247e852.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/64521/
Test PASSed.

Merged build finished. Test PASSed.

Test build #64535 has started for PR 14848 at commit b631901.

Test build #64535 has finished for PR 14848 at commit b631901.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/64535/
Test PASSed.

Test build #64541 has started for PR 14848 at commit adf3d5b.

Test build #64541 has finished for PR 14848 at commit adf3d5b.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/64541/
Test PASSed.

Merged to master


Incorporate aframe in CampusDirections program to show the paths found

When we find a path, the image of the starting location needs to show up and the rest of the images should be queued so we can click through images to get to destination. This requires incorporating aframe with the project. I'm not sure if this will happen directly on page Yanjun and I have been working on or if user will be brought to a second page.

@HarryXu12138 is doing the compatibility part with aframe. The general idea is to insert direction arrow or other buttons manually, and this requires tons of repeated work. Harry may teach us how to do it and we can share the workload.

Okay. I was probably going to try this too so maybe we can compare implementations.


Empty pull request to ci check icons-angular

while I work on fixing my local env

Absolutely stumped by this one ... closing since it didn't yield anything useful


Extracting form values from PDF in the default viewer

Good day,
I am new to pdf.js and I know the form functionality is currently in development.
The example at the link below provides a great way of extracting all form element names and their respective values.
https://github.com/mainegreen/pdf.js/tree/master/examples/forms
My question is how can I include this functionality in the main viewer?
I have enabled forms by setting renderInteractiveForms to true but that only allows interaction with the form elements. I need to be able to extract them and save them eventually. Including forms.js in the viewer also does not work.
Thanks in advance.
Luben

It's an open question that is tracked in https://github.com/mozilla/pdf.js/projects/1. The renderInteractiveForms setting take care of parsing and rendering the form elements, but saving/printing entered information is not implemented yet. Once the fields have a unique identifier, you may be able to loop over all form elements and get their contents, but this has to be thought out properly before we can include it in the main viewer. It is, however, on the roadmap for the forms implementation.


[BACKLOG-32496] Update "Text file output" step to use enhanced VFS br…

…owser for browsing and selecting files

:white_check_mark: Build finished in 11m 11s
Build command:
mvn clean verify -B -e -Daudit -amd -pl ui

:ok_hand: All tests passed!
Tests run: 1123, Failures: 0, Skipped: 0    Test Results

:information_source:  This is an automatic message

@cseverino789


Python component

pylama: Code audit tool for Python and JavaScript.
Pylint: A Fully customizable source code analyzer.
pep8: Python style guide checker
coala:  Language independent and easily extendable code analysis application.
pycallgraph: A library that visualises the flow (call graph) of your Python application.
dh-virtualenv: Build and distribute a virtualenv as a Debian package.
Nuitka: Compile scripts, modules, packages to an executable or extension module.
PyInstaller: Converts Python programs into stand-alone executables (cross-platform).
pynsist: A tool to build Windows installers, installers bundle Python itself.
sphinx: Python Documentation generator.

LGTM


[Question]: Similarity score for pinecone vector store.

Question Validation

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

Question
Hi everyone. I am building an IT chatbot using llama index and pinecone as the vector database along with OpenAI 3.5-turbo as the llm and text-ada-002 as the embedding model. For pinecone similarity search, I am using cosine similarity function.
I want to record the similarity score which is given during retrieval of nodes when using a context chat engine in the response
response = chat_engine.chat("Steps to reset ad password?")
response.source_nodes

will give the nodes along with the similarity score for each node.
When verifying these scores, when the query has some relevant information in the documents then the nodes retrieved will have a score of 0.8, 0.81 and such.
But when having some normal chat with the bot and asking it some general knowledge based questions like Give me the revipe to make pasta it still retrieves some nodes along with scores like 0.71, 0.72 even though there is nothing similar among the question asked and the nodes retrieved from documents indexed.
I want the score to work properly as my application has to make some logical decisions based on the threshold of this score. Is there something that I am doing wrong with pinecone. Can someone help me with this issue?
Thanks.

@rudrakhsha-c this is correct, and in general, matches my experience with openai embeddings. 0.7-ish is a neutral score in my experience for ada-002. Anything above 0.78 is probably relevant


N15: Articles on WGPU, Winit, Pixels, ECS

Contribution updates to https://github.com/rust-gamedev/rust-gamedev.github.io/issues/320

Merged, thanks for the PR!
@nyxtom please, don't include the coordination issue in the commit message, cause it creates unnecessary noise each time the branch is rebased:


Confused about behaviour vs tsc behaviour

Hi,
I have been fighting with this for three full days now, and I can't get it all to behave like I want it. I am preparing an existing codebase for TS, but creating the correct tsconfig.json is being a hell. I have created a separate testing codebase basically from scratch, in which I'll show this issue. It goes further than this, but the main issue now lies in the sourcemaps pointing to incorrect paths. I'm at a total loss :(
The issue I'm having is that manually invoking the transpiler results in different sourcemaps than using the plugin.
Files:
tsconfig.base.json
{
    "compileOnSave": false,
    "compilerOptions": {
      "target": "es6",
      "module": "commonjs",
      "moduleResolution": "node",
      "experimentalDecorators": true,
      "emitDecoratorMetadata": true,
      "sourceMap": true,
      "pretty": true,
      "strictNullChecks": true,
      "skipLibCheck": true,
      "strictPropertyInitialization": true,
      "outDir": ".nowhere", // Bogus value; this config should not be used to transpile.
      // "rootDir": "src",
      "allowJs": true
    }
}

tsconfig.json
{
  // https://stackoverflow.com/a/37555279/7193940
  "extends": "./tsconfig.base.json",
  "compilerOptions": {
    "allowJs": true,
    "outDir": "bin"
  },
  "include": [
    "src",
    "test",
    "gulpfile.js"
  ],
  "exclude": [
    "node_modules",
    "bin"
  ]
}

tsconfig.dev.json
{
  "extends": "./tsconfig.base.json",
  "compilerOptions": {
    "allowJs": true,
    "isolatedModules": true,
    "outDir": "bin",
    "sourceMap": true,
    // "baseUrl": "./"
  },
  "include": [
    "src"
  ],
  "exclude": [
    "node_modules",
    "bin",
    "gulpfile.js"
  ]
}

Gulpfile.js
const gulp = require('gulp');
const tsc = require('gulp-typescript');
const sourcemaps = require('gulp-sourcemaps');
const del = require('del');
const eslint = require('gulp-eslint');
const logger = require('gulplog');
const notify = require('gulp-notify');
const nodemon = require('gulp-nodemon');
const mocha = require('gulp-mocha');

const tsProject = tsc.createProject('tsconfig.dev.json');

const config = {
    source: './',
    get sourceApp() { return `${this.source}src/`; },
    get tsOutputPath() { return `${this.source}bin/`; },
    get tsTestOutputPath() { return `${this.source}bin/`; },
    get allJavaScript() { return `${this.source}bin/**/*.js`; },
    get allTypeScript() { return `${this.sourceApp}**/*.ts`; },
};

/**
 * Transpile all TypeScript in the project and store the output + sourcemaps in the config.tsOutputPath folder.
 */
gulp.task('transpile-ts', () => tsProject.src()
    .pipe(sourcemaps.init())
    .pipe(tsProject())
    .pipe(sourcemaps.write('.', { sourceRoot: '.', includeContent: false }))
    .pipe(gulp.dest(config.tsOutputPath)));

gulp.task('mocha', () => {
    return gulp.src(['test/**/*.test.ts']).pipe(mocha({ require: 'ts-node/register', reporter: 'nyan' }));
});

/**
 * Utilize nodemon to run the node server.
 */
gulp.task('start-node', () => nodemon({
    // the script to run the app
    script: `${config.tsOutputPath}index.js`,
    // this listens to changes in any of these files/routes and restarts the application
    watch: [config.sourceApp],
    tasks: ['transpile'],
    ext: 'ts,js',
    env: {
        NODE_ENV: 'development',
    },
})
    // .on('start', ['transpile'])
    // .on('change', ['watch-no-lint'])
    .on('restart', () => {
        if (config.DEBUG) {
            gulp.src()
                .pipe(notify('Restarting node server...'));
        }
    }).on('crash', () => {
        gulp.src()
            .pipe(notify('Nodemon has crashed!'));
    }));

gulp.task('transpile', gulp.series('clean-ts', 'transpile-ts'));

When using the gulp transpile command:
Source location: src/index.ts
Transpiled location: bin/index.js
Mapping file location: bin/index.js.map
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;AAAA,wBAAsB","file":"index.js","sourceRoot":"."}

When using tsc --p tsconfig.dev.json command:
Source location: src/index.ts
Transpiled location: bin/index.js
Mapping file location: bin/index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,wBAAsB"}

As you can see, the sources of the gulp-transpile command are plain wrong, but the ones generated by tsc aren't. I'm at a total loss of what I'm doing wrong, and any pointers would be greatly appreciated. The complete project that I'm using for testing can be found here: https://github.com/MagicLegend/ts-testing-project
In the actual project I am also having issues with that all the source files are located in server/src, which confuses the source map generation even more (it adds a server/ to the sources path...)
Any help is much appreciated!

tsProject is known to be broken. Sorry.

Hi @phated ! Thanks for the extreme quick reply. Are you aware of any alternative how to make this work then?

Unfortunately not. I don't use typescript, so I don't use that plugin.  Maybe at least make a note on the wiki that gulp-typescript support is flaky to say the least then.
I finally figured out how to do this; and the solution turned out to be to drop gulp completely. The solution is present in https://github.com/MagicLegend/ts-testing-project, and is as follows:
Add npm script:
"start-watch": "./node_modules/.bin/tsc-watch --onSuccess \"node --inspect bin/index.js\" --onFailure \"notify-send -a Node 'Transpilation error!' 'Check the task terminal for results...'\" -p tsconfig.dev.json"

Done. I got the solution from this SO answer (archived). The debugger can just be attached; and everything magically works.
Again thank you for your quick response! I hope my solution will help somebody else facing the same problems.


Continue execution should use F5 keybinding

Testing microsoft/vscode#133903
Continue execution uses the Ctrl + Enter keybinding. Why not F5 to be aligned with what we do for regular debugging?

I think it could go either way, but F5 makes sense to me.

Ctrl+Enter, Shift+Enter and F5 should all continue to end of cell.

F5 does do continue. I think it's fine that ctrl+enter is the main default shortcut


Support half-precision training in train_dalle.py

Activated via the --fp16 flag.
For DeepSpeed, this also enables ZeRO optimizations when the user desires it.
When DeepSpeed and FP16 are both active, I ran into CUDA errors when generating images for logging. This is probably an issue on the DeepSpeed side; for now I guard that call (I left the now redundant text generation calls in in case they're to be used anywhere else at some point).

Just realized I forgot to test this with the VQVAE.

It's more clean now and should work with all VAEs.

@janEbert thank you! 🙏🙏 This is awesome :)

Great work @janEbert!

@lucidrains and @afiaka87: Thanks for all the nice words!
@lucidrains, please tell also tell me when you feel the code needs a refactoring due to the changes. With all the if-statements, your script gets more and more dirty to handle the different cases and I don't want to get on your nerves with that. :)

If you want, I can also add support for Horovod as a distributed backend; I'm assuming we can put a pretty general API behind deepspeed_utils (I guess then distributed_utils).
I don't have access to Fairscale in our environment but that would be another backend option.


Dose qrun support long_short_backtest, if so , how do I  set up the yaml file?

I've tryed this, but it doesn't work.
port_analysis_config: &port_analysis_config
strategy:
class: TopkDropoutStrategy
module_path: qlib.contrib.strategy.strategy
kwargs:
topk: 10
n_drop: 3
long_short_backtest:
verbose: False
limit_threshold: 100
account: 100000000
deal_price: close
open_cost: 0.0005
close_cost: 0.0005
min_cost: 0.0
trade_unit: 1

@wuzhe1234
Hi,  We have a long-short backtest function https://github.com/microsoft/qlib/blob/main/qlib/contrib/evaluate.py#L131
It is not integrated into a yaml-based workflow.
We'll try to improve it later.
Thanks.

@wuzhe1234
Hi, We have a long-short backtest function https://github.com/microsoft/qlib/blob/main/qlib/contrib/evaluate.py#L131
It is not integrated into a yaml-based workflow.
We'll try to improve it later.
Thanks.

Thanks for your reply! Looking forward to it.


Login onKeyUp not working

Bug Description:
At the moment, we have the onKeyUp attribute set up for the login button on PASS with the "Enter" key (OidcLoginComponent.jsx). However, it never gets triggered. Only the onClick works as intended.
Not urgent for MVP, but could be a good quality of life fix.
Expected Behavior:
To trigger login with the "Enter" key from the login page.

I was going to make this issue today too, it really bugs me. Hahaha

I believe there's a way to set the tab order for this in HTML called tabindex? We could set the button as first in the ordering then the text field for the Solid server, then any other focusable links or elements.

Other way around. text field first, login button second. Tab index should go left -> right and top -> bottom.

Want thinking about using the default server as the default option (with only advanced users wanting to change servers), so shouldn't the ordering be better with the button first then the textfield? With the rest following the standard convention left to right, top to down.

It's best to adopt the general web conventions unless we have strong reason not to.
Left -> Right, Top -> Down is a pretty widely established keyboard accessibility convention:
https://webaim.org/techniques/keyboard/
https://www.w3.org/WAI/fundamentals/accessibility-principles/#keyboard

That could work

Issue resolved in PR #340 with onKeyUp being moved to Login TextField instead of Login Button. Closing issue.