Weigh vertexes in Djikstra based on monthly volume for the CCXT pair converter

Currently the Djikstra search doesn't take into account trading volume when calculating routes. This could lead to inaccurate pricing caused by low volume. I propose weights be based on monthly volume. This should provide enough granularity. I'm afraid if we use daily volume, the graph could take up too much memory and pulling the data could take too long.
These weights will actually be added to a priority queue of exchanges in MappedGraph and the current private variable that tracks this self.__exchange_markets will be removed.

A question on this approach. Suppose I run DaLI on Apr 14 2023 and I get some results with certain pricing information reflecting the current volume. Then I run DaLI again on Apr 14 2024 and at that time volume data has completely changed: will the volume change affect transactions before Apr 14 2023? The reason I ask is that we should strive to preserve historical output as much as possible. In other words one way to test DaLI is to run it periodically and compare the output against golden files: such tests should continue to work.

I think weights for the current month would have to be based on the previous month volume.
For example if you run Dali on April 14th and price a transaction for April 3rd the exchange with the most volume in March of that year would be used.
Alternatively, it could just be disabled for the most recent current month in order to keep consistent results.
Otherwise, the volume would be month by month and never change. The exchange with the highest volume for March of 2023 will still be the exchange with the highest volume for March of 2023 in April 2024.
The market priority queue would be sorted by month if that makes sense.
For example, we price a transaction from April 2022 and exchange A has more volume than exchange B for April 2022, we will use exchange A. The volume for exchange A will never change once it's completed so it will always be the same price.
The priority queue for markets will choose which exchange to use for a given vertex.
We have similar problem with vertexes in general though. The volume of transactions for BTC -> EUR is actually less than BTC -> USDT on a lot of exchanges and some stable coins are more popular on different exchanges at different times, so the quote priority will have to be created based on monthly volume as well.

Thanks, that makes sense. I guess the only time this would break price continuity is if a new exchange gets added, which may have largest volume for certain intervals in the past. But I think that particular case is probably OK and hopefully it doesn't happen very often.

It looks like this will have to be implemented to resolve the issue I'm having with BETH pricing. I need to mark certain markets unavailable for the months before they become available. What is happening right now is that a BETH->USDT market exists on Binance.com, but I had BETH before March 2023, which is when it started trading. It keeps using that market since it is a shorter hop than the previous route (BETH->ETH->USDT).

I have 3 ideas of how to achieve these multiple graphs:

Inherit from the Vertex and Graph Classes - create a vertex class that allows for different states. These states correspond to years and months. To save on memory, these states could even be saved as ranges (e.g. before April 2023, the weight is 10,000, which would cause Dijkstra to route around it) The Graph class would also need to be overridden in order to make use of the states of course. This would be done in abstract_pair_converter.
Have a dictionary with multiple graphs one for each year/month - This would be the most straightforward, but less efficient in terms of memory and having to copy the whole graph several times each time a change is made.
Have a dictionary that just keeps track of the differences between the years/months - Every time the changes would be applied to the graph based on the year/month of the price being requested. The graph would then be reverted for the next time a price is needed.

I think 1) is the best option. It would provide efficiency and should not cost much in speed. I'm guessing you don't want this in prezzemolo, so I would be overriding the classes in dali.

is straightforward and easy enough, but we could potentially have 10 (years of crypto trading) X 12 = 120 graphs in memory, each with ~2000 vertexes. I can't imagine a way to save memory with ranges.

We can utilize ranges as well but making changes and reverting the changes seems cost prohibitive to me.

That's all the ways I can imagine implementing it. Is there something I'm missing or do you have another idea?

My main observation when it comes to subclasses is that I'd like the Graph and Vertex APIs to stay mostly the same (unless there is a pressing need to add something that can't be achieved without a new method). How would a search look like in this proposal? Perhaps it would be easier to discuss if you could you write up a prototype of option 1 in a PR.
Side note: one way to represent objects ordered by time is to use AVL Trees (similar to what the accounting engine does): not saying this is the only approach in this case, just a suggestion.
Option 2 is fairly clear to me: why is it not possible to use ranges to optimize it? Perhaps you could have an AVL Tree of Graph objects ordered by date.

For option 1, basically a vertex would have multiple neighbor dicts and weight dicts one for each month that would be held in a dict with a key of the month/year. The Dijkstra search would then be overwritten in order to take year/month that would be used to recall the neighbors and weights for that year/month.
Vertexes would lazy implement the multiple dict per year/month. The majority of them will never need that functionality.
Basically in option 1, only the vertexes that change will require extra memory and dict to store the changes. Most of the vertexes will not need to change. In option 2, all of the vertexes will be copied in memory for each graph. However, most will not be used during pricing, so this is redundant.
For example, Binance.com produces around 2000 vertexes. But, most investors will only be using 10~20 of these. There are exceptions of course, but I'm guessing most people stick to around 20 crypto assets. Only these vertexes would be different between graphs, the rest of the graph will be the same as all the other graphs for the other months. What I'm trying to do with option 1 is efficiently track just the differences between graphs and not the majority of the graph which will stay the same.
We can use option 2 and have a master graph that we lazy copy and modify when a price is queried for that given month and then sort them all with a AVL Tree. That seems pretty optimized. If I run into memory issues I'll try something else.

Going with option 2 and checking how it goes sounds like a good plan to me. I also wanted to understand the details of data structures a little more in detail: would it be a time-ordered AVL tree of Graphs or is there something more (wasn't sure what you meant by "master graph")?

Maybe a better term than master graph would be original graph.
Basically, the neighbors won't need to be modified, only the weights, so once a graph is made it just needs to be updated for the correct weights for that year/month. The new graph would then be sorted by AVL tree.

One of the design principles RP2 and DaLI try to adhere to is immutability: data structures are read-only, which removes an entire category of bugs. There are a few exceptions to this rule, when immutability would cause algorithm complexity to increase too much (e.g. AVL tree nodes). So if at all possible, I'd like to avoid adding mutability to Graph.
The way I was thinking about it is (in pseudocode):
# create tree
timeline: AVLTree[datetime, MappedGraph]() = AVLTree()
...
# lazily insert new graphs in the timeline, when needed
new_graph = MappedGraph(...)
timeline.insert_node(somedate, new_graph)
...
# get graph for a given date
graph = timeline.find_max_value_less_than(someotherdate)

The idea here is that there is one AVL tree that contains multiple graphs, each of which is a "snapshot" in time of the graph. Does this work?

I totally understand all that. I'm just curious about how to basically copy the graph. It seems redundant to rebuild the entire thing from scratch.
Whenever we optimize the graph we will need a whole new graph that is a snapshot as you say. That graph will basically be the same as before with only a handful of edges modified.
So do I rebuild it with primary and alternative markets every time? If that is the case I need to cache the markets from the exchange so that they can be rebuilt. Otherwise I have to pull them again via REST, which is inefficient.
Ideally, I would like to clone the original unmodified graph and in the process optimize the weights. But it seems like you would like me to rebuild from the markets each time, optimizing as the graph is being built. Is that correct?

Will the clone graph have the same topology as the original one with just some weights changed or will the topology itself change?

Yeah sorry, I should be using better terminology. The topology doesn't need to change at this time. However, it would be handy to add neighbors at certain times for assets that were listed and then subsequently delisted. It's not a necessity at this time though. This link would not be easy to discover dynamically since it may not appear in the exchange information that lists all currently available markets.
Deletion of neighbors will be necessary to account for the span of time that a market didn't exist before it was listed on a given exchange. However, neighbors can effectively be deleted by adding an abnormally high weight (e.g. 10,000), so the topology would not need to be altered.
The idea that I came up with while pondering this today is to cycle through the vertexes from the graph and declare new vertexes using information from them, copying over their neighbors and weights as well. During the copy process, if one of the edges described in the tuples passed to the clone() function above is found, it will replace the weight for it.
One graph may need to be optimized several times, once for each asset that is being searched. Each time a new graph will need to be created and inserted into the AVLTree, replacing the previous graph. The new graph will need optimizations in it from the previous iterations of optimization.

That makes sense. The clone function can receive:

a list of existing edges with changed weights
a list of "deleted" edges
a list of "new" edges
With this information it should be able to build a new graph fairly efficiently.

Sorry for jumping back and forth here, but I figured we need to go back to the drawing board on this. I moved this comment over from the PR.
I'm afraid there has been a misunderstanding here because it doesn't look like I can't implement this using AVLTree from prezzemolo. I will need to replace nodes in the tree, and it appears the AVL tree is immutable.
I think it would be possible if all transactions were known before hand, but the optimizations will have to be done on the fly.
My original idea was to have a dictionary with keys as a month/year that holds the another dictionary of graphs organized by exchanges, which is how it is currently implemented:
{ month/year : { exchange : graph}}
This will need to be updated regularly as the plugin works through the transactions, so it would need to be mutable. If you can think of an immutable solution we can use that, but I don't see how it would be possible.

All right, I think I have it now. We can pull weekly candles from the exchanges for every market when we go to build the graph for the first time, and build all of the snapshots from that over time. Maybe that was what you were thinking from the beginning?
Pulling for Binance and Kraken will probably take 15-20 minutes. The last quarter for kraken will take the longest. That might end up adding 20 minutes or more to building the graph. If we add more exchanges, this would add to the time, but the solution would be immutable.
To speed it up, we could ask users to declare the assets they trade with in the plugin settings and when their first trade was, this will speed up the cache building process immensely. If they miss an asset or the start date we can throw an error that the graph is not optimized for that time and advise them to make changes. If they do not declare anything, we can warn them with an info log and at the end of the first optimization tell them what to put in the configuration file.

Is it possible to pass a manifest or summary from dali_main.jp that lists all the assets that need to be priced, a start date of transactions, and total transactions? This can either be built by cycling through all the transactions quickly and building one, or asking all input plugins to provide themselves. If I had that optimizing the graph would be a lot faster and easier. It would also be helpful for creating some kind of mechanism that can estimate how long a full pull will take.

Immutability is aspirational, but we shouldn't let it become a burden. If the immutable solution is measurably more complex or slower than the mutable one, it's OK to go for the mutable solution. The prezzemolo AVL tree needs to implement the delete_node method to become mutable, however using AVL trees was just an idea. I haven't done detailed time/space complexity analysis on this algorithm, but probably using dictionaries is a reasonable first approach (especially if we give up immutability). If we find performance problems we can always reassess and investigate other data structures. How would estimated performance change if we give up immutability?

Yes, that should be possible. We'll need to rearrange slightly the code in main: move input plugin loads a few lines above (just above pair converter allocation), so that the resulting transactions (or maybe just their assets) can be passed to pair converters. Does that make sense?

I think we could just have a method called optimize() for the pair converters that takes the manifest. We can cycle through the plugins and see if they have the attribute and hand it off after the transactions have been processed but before prices have been pulled.
The graph is lazy load, so it won't get built/optimized unless it is needed. It doesn't get built when the plugin is initialized.

By manifest you mean the list of assets, right? That works, but I would just add the optimize method to the superclass and have empty implementations in subclasses where it's not needed.

Yeah, I'm guessing manifest is more descriptive? This would be a NamedTuple with a list of the assets and when the first transaction occurred. I'll define it in the superclass.

This has been fixed with #146, but uses weekly volume since that is more widely supported.


Add a pipe function

The pipe function would be like chain but instead of returning a function, it would pass the value through and execute the function.
Logically, pipe is a way of executing many functions, one after another.
See this article for a detailed concept.
The Interface
import { pipe } from 'radash'

const addFive = (num) => num + 5
const divideByTwo = (num) num / 2

pipe(5, addFive, divideByTwo) // 5

This made me consider a skip function. Some functions have a side effect and return nothing, you might want to run it in a pipe but not break the value passing through the pipe.
const skip = (func) => (value) => {
  func(value)
  return value
}

pipe(5, addFive, console.log, divideByTwo) // errors
pipe(5, addFive, skip(console.log), divideByTwo) // console.logs 10 and returns 5

I want to make a PR for this, but I don't know where to add the code. Can I add to curry.ts? Or should I create a new file for it?
Also if pipe's params contain async functions, pipe should be async, should I move it to async.ts?

import isPromise from 'is-promise'

type AsPromise<T> = T extends Promise<any> ? T : Promise<T>
type MayBePromiseReturn<O, T> = Extract<O, Promise<any>> extends never ? T : AsPromise<T>
type PromiseValue<T> = T extends Promise<infer U> ? U : T
export function pipe<T0, T1, T2, T3, T4, T5, T6, T7>(src: T0,
  op1: ((s: PromiseValue<T0>) => T1),
  op2: ((s: PromiseValue<T1>) => T2),
  op3: ((s: PromiseValue<T2>) => T3),
  op4: ((s: PromiseValue<T3>) => T4),
  op5: ((s: PromiseValue<T4>) => T5),
  op6: ((s: PromiseValue<T5>) => T6),
  op7: ((s: PromiseValue<T6>) => T7),
): MayBePromiseReturn<T0 | T1 | T2 | T3 | T4 | T5 | T6 | T7, T7>
export function pipe<T0, T1, T2, T3, T4, T5, T6>(src: T0,
  op1: ((s: PromiseValue<T0>) => T1),
  op2: ((s: PromiseValue<T1>) => T2),
  op3: ((s: PromiseValue<T2>) => T3),
  op4: ((s: PromiseValue<T3>) => T4),
  op5: ((s: PromiseValue<T4>) => T5),
  op6: ((s: PromiseValue<T5>) => T6),
): MayBePromiseReturn<T0 | T1 | T2 | T3 | T4 | T5 | T6, T6>
export function pipe<T0, T1, T2, T3, T4, T5>(src: T0,
  op1: ((s: PromiseValue<T0>) => T1),
  op2: ((s: PromiseValue<T1>) => T2),
  op3: ((s: PromiseValue<T2>) => T3),
  op4: ((s: PromiseValue<T3>) => T4),
  op5: ((s: PromiseValue<T4>) => T5),
): MayBePromiseReturn<T0 | T1 | T2 | T3 | T4 | T5, T5>
export function pipe<T0, T1, T2, T3, T4>(src: T0,
  op1: ((s: PromiseValue<T0>) => T1),
  op2: ((s: PromiseValue<T1>) => T2),
  op3: ((s: PromiseValue<T2>) => T3),
  op4: ((s: PromiseValue<T3>) => T4),
): MayBePromiseReturn<T0 | T1 | T2 | T3 | T4, T4>
export function pipe<T0, T1, T2, T3>(src: T0,
  op1: ((s: PromiseValue<T0>) => T1),
  op2: ((s: PromiseValue<T1>) => T2),
  op3: ((s: PromiseValue<T2>) => T3),
): MayBePromiseReturn<T0 | T1 | T2 | T3, T3>
export function pipe<T0, T1, T2>(src: T0,
  op1: ((s: PromiseValue<T0>) => T1),
  op2: ((s: PromiseValue<T1>) => T2),
): MayBePromiseReturn<T0 | T1 | T2, T2>
export function pipe<T0, T1>(src: T0,
  op1: ((s: PromiseValue<T0>) => T1),
): MayBePromiseReturn<T0 | T1, T1>
export function pipe(src: any, ...ops: ((s: any) => any)[]): any {
  let value = src
  for (const op of ops) {
    if (isPromise(value))
      value = value.then(x => op(x))
    else
      value = op(value)
  }
  return value
}

I have made one for myself. It can resolve promise automatically and return promise if one of the operators is async. Happy to share.

export function $<T, Args extends readonly unknown[], R>(fn: (value: T, ...args: Args) => R) {
  return (...args: Args) => {
    return (value: T) => {
      return fn(value, ...args)
    }
  }
}

export function take<T>(collection: T[], size: number) {
    return collection.slice(0, size)
}

export function filter<T>(collection: T[], predicate: (value: T) => boolean) {
  return collection.filter(predicate)
}

with these kinds of  operators, we can do something like this:
const result = take(source, 5)
const result = filter(source, x => x.bool)

// pipe
pipe(value, $(filter)(x => x.bool), $take(5))

@haoran965 thanks so much for wanting to contribute ❤ I think the curry.ts module is a great place to add pipe 👍 check out the compose function and its tests, its sort of magic because it works on sync and async functions. If we can make that possible for pipe that would be awesome (and we can leave it in curry.ts).

@shtse8 thank you for sharing your pipe function, I love how simple it is! The $ function is also great. I'd love to see a PR where I can run tests and play with the typing/hints in my IDE. One thing we would need to do is build our own is-promise check so we don't add a dependency.

@shtse8 thank you for sharing your pipe function, I love how simple it is! The $ function is also great. I'd love to see a PR where I can run tests and play with the typing/hints in my IDE. One thing we would need to do is build our own is-promise check so we don't add a dependency.

I am working on a big project, so I don't have much time to submit PRs shortly. hope @haoran965 can help.

do you mind if i do it @shtse8 ? It would make me a PR for Hacktoberfest 😄

do you mind if i do it @shtse8 ? It would make me a PR for Hacktoberfest 😄

please do. 🚀🚀

I tried to design something like: to wrap up the pipe method which is widely used by others probably.
``js
export class Dash {
constructor(private readonly _value: T) {
}
__<Args extends readonly [], R>(fn: (value: T, ...args: Args) => R) {
return (...args: Args) => {
return new Dash(fn(this._value, ...args))
}
}
_<Args extends readonly [], R>(fn: (value: T, ...args: Args) => R, ...args: Args) {
return new Dash(fn(this._value, ...args))
}
pipe(fn: (value: T) => R) {
return new Dash(fn(this._value))
}
value() {
return this._value
}
}
It doesn't work. the typing is messed up.
It should work, but no idea why.

That's interesting @shtse8 looks like you're going in more of a stream/reactive direction. There could be value in that type of function/feature/implementation but I was thinking of a simple function tool that lets you run an initial value through a series of operations.
const pipe = (value, ...funcs) => funcs.reduce((acc, fn) => fn(acc), value)

const add = (n) => (num) => num + n
const minus = (n) => (num) => num - n
const multiply = (n) => (num) => num * n
const divide = (n) =>  (num) => num / n
const round = (num) => Math.round(num)
const suffix = (str) => (value) => `${value}${str}`
const fixed = (num) => +num.toFixed()
const debug = (func) => (value) => { func(value); return value }

pipe(5, add(5), divide(2)) // => 5
pipe(5, add(5), divide(3), round, suffix('/mph')) // => '3/mph'
pipe(5, add(5), debug(divide(2)), suffix('/mph')) // => prints 10 and returns '5/mph'

A real use case might be. It's still simple, I'd be interested in making it usable with async or maybe providing builtin helper functions for running through pipes.
const toCelsius = (f) => pipe(f,
    minus(32),
    multiply(5),
    divide(9),
    fixed,
    suffix(' °C'))

toCelsius(32) // => 0 °C
toCelsius(212) // => 100 °C
toCelsius(90) // => 32 °C

I was investigating to use Radash for one of my projects, but I am also missing the possibility to do easy type-safe chaining.
I created this working proof-of-concept:
https://stackblitz.com/edit/typescript-fgyues?file=index.ts
it uses Radash, I borrowed the .pipe() function of fp-ts and added some glue code to lift the existing Radash functions to be easily applied in the chain.
Example usage:
import * as _ from 'radash';
import { unique, alphabetical } from 'radash/operators';

// chained functions (with type-safety)
console.log(
  _.pipe(
    fish,
    (it) => _.unique(it, (f) => f.name),
    (it) => _.alphabetical(it, (f) => f.name, 'desc')
  )
);

// chained functions, operator-style (with type-safety)
console.log(
  _.pipe(
    fish,
    unique((f) => f.name),
    alphabetical((f) => f.name, 'desc')
  )
);

Implementation is farely easy:
function buildOperator<FIRST_ARG extends unknown, OTHER_ARGS extends unknown[], RETURN>(
  radashFn: (firstArg: FIRST_ARG, ...args: OTHER_ARGS) => RETURN
): (...otherArgs: OTHER_ARGS) => (firstArg: FIRST_ARG) => RETURN {
  return (...otherArgs: OTHER_ARGS) => {
    return (firstArg: FIRST_ARG) => radashFn(firstArg, ...otherArgs);
  }
}

export const unique = buildOperator(rUnique);
export const alphabetical = buildOperator(rAlphabetical);
// ... and so on

the implementation of the pipe function can be found here (not sure why they use a switch case in the implementation).

If pipe works, what about data supplied last and automatically curry?  :)
https://ramdajs.com/


use externalTranspiler before doing diffs for status

Create new function getRawOutputPostExternal with same interface
as getRawOutput except that it returns a <Promise<ts.EmitOutput>
instead of a ts.EmitOutput.
This function calls getRawOutut, then passes the result through
runExternalTranspiler so that babel, if configured, is applied.
Call/use this new function in getOutputJsStatus.
Net result: people using babel are not constantly being told their
JS is Outdated.
Closes #736

Word to the wise: github's new gui has bugs....  don't trust it to put the most up-to-date commit messages into the PRs it generates for you. :)


Getting GPS and Barometer error

Describe the bug
I am using the firmware version v1.10.1 and facing issues with the SITL. On starting the simulator, I get the following output
pxh> INFO  [ecl/EKF] 1532000: EKF GPS checks passed (WGS-84 origin set)
INFO  [ecl/EKF] EKF aligned, (pressure height, IMU buf: 22, OBS buf: 14)
INFO  [mavlink] partner IP: <IP_ADDRESS>
INFO  [ecl/EKF] 6092000: EKF commencing GPS fusion
WARN  [ecl/EKF] 6708000: EKF baro hgt timeout - reset to baro
WARN  [ecl/EKF] 11716000: EKF baro hgt timeout - reset to baro
WARN  [ecl/EKF] 26364000: EKF baro hgt timeout - reset to GPS
WARN  [ecl/EKF] 26364000: EKF gps hgt timeout - reset to GPS
Here is my combination.
PX4/Firmware (stable 1.10.1) + MAVSDK (0.26.0) + MAVSDK-Python (0.7.0).
To Reproduce
Steps to reproduce the behavior:

cd Firmware
make px4_sitl gazebo

Could you try current master (soon to be v1.11)? If you still have a problem please share the ulg (https://logs.px4.io/).

Resolved the issue. It was happening because I had a separate build of sitl_gazebo and wasn't using the one that comes with the firmware when I updated it to 1.10.1. Just removed the earlier build of sitl_gazebo and set the environment variable for the new one.
Thanks


[question] Cross-layer parameter sharing

Hi all,
current issue is not a concrete issue I found in the code, but more of a code understanding question. If you find this type of question inappropriate here - please accept my apologies in advance.
The question is about parameters sharing. It is stated in original article describing ALBERT that all  hidden FFNs and attention layers will share their parameters with each other. During inference time, when the network is initialized, I kinda see this happening in run_pretraining.py when we work with num_of_initialize_group variable and probably assign same weights to all layers within the same group.
However during training, when we run the modelling.py::transformer_model(), we distinctly create new attention/dense layers in the loop for each of [1 ... num_hidden_layers]. Wont that force them to be optimized separately during training? If so, where does the 'parameter sharing' part comes into picture? Thank you for your answers!
Cheers!

Yup, just noticed that the get_assignment_map_from_checkpoint logic looks like it was forked from BERT-style initialization (with no cross-layer parameter sharing) instead of the ALBERT_style initialization.  My inference graph / checkpoint still looks the appropriate size, though, so it seems there might be a training / serving skew.


OutputVariable section in json is ignored when importing a task in Task Groups

I am trying to add an output variable to a phase of our online build that would be consumed by the next phase.
Based on the documentation, I used:
##vso[task.setvariable variable=myOutputVar;isOutput=true;]someValue
To set the value of the output variable. This is in a script which is within a Task Group that I have created.
I noticed that when the script is in the Task Group, I cannot access the value from a task within the same phase, let alone the next phase. If the script is added to the build (without being in a Task Group), then I can use the VSTS UX to set the Reference Name and then access it from the next step.
To fix this, I followed the instructions in the Output Variables documentation and I added an "OutputVariables" section to the json for the task group like so:
  `"OutputVariables": [
    {
      "name": "myOutputVar",
      "description": "This is the variable."
    }
  ]`

When I uploaded the json back to the Task Groups I noticed that the entire section was missing. I tried this more than once and putting the section in different places and the result was always the same - the entire section is removed from the uploaded json.
This means that there are a couple of bugs:

If a whole section is removed from the json script, whether they are valid or not, the user needs to be given an error. You can't just "fix it" by removing the section and then leave the user wandering what happened to their script.
If the section OutputVariables is in fact supported in Task Groups, then why is the section being removed?
If the section OutputVariables is NOT supported in Task Groups, the documentation needs to say this.
If the section OutputVariables is NOT supported in Task Groups, then how is one to create an output variable from any of the tasks within a Task Group? None of them seem to have automatic ref names created as the documentation suggests.

I reported the issue there as well, however, I believe it is still an issue here and I will open a new task for it if you don't get around to re-opening this one. The reason it is also an issue here is that the documentation for the agent specifies how output variables should be used. Until the documentation is updated appropriately, this is an agent issue:
https://github.com/Microsoft/vsts-agent/blob/master/docs/preview/outputvariable.md


Simplify layers API (remove unnecessary method)

While working on integrating the new layers API on the new editor I discovered that there's only one type of "plain" layer, the background type does't exist, it's only a plain layer with either color or an image set.
To KISS the code (both here and in the editor) I'd suggest to remove the createBackgroundLayer method, and change the assertion to check for either color or image.

Solved in #1205.


Holding down finger after double-clicking to zoom causes the alt text to activate

I'm a big one-hand user of phones, and use one-finger zoom almost exclusively. I noticed that double clicking zooms in by some arbitrary amount. However, when using this method to zoom, if one continues to hold down their finger, the alt text will show on the bottom, the phone will vibrate, and the image will no longer be zoomed in. It's rather off-putting.

Done! I've added a 500 ms delay for you to put up your finger. Also the zoom behavior is now:
1st double tap -> 0.5*maxZoom
2nd double tap -> maxZoom
3nd double tap -> zoom out


Chrisda to Main

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

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/Get-MailboxPermission.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/Get-QuarantineMessage.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/New-DistributionGroup.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/New-DlpCompliancePolicy.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/New-DlpComplianceRule.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/New-MailboxRestoreRequest.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/New-ManagementRoleAssignment.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/New-SafeAttachmentPolicy.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/Remove-Mailbox.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/Remove-RecipientPermission.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/Set-DistributionGroup.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/Set-DlpCompliancePolicy.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/Set-DlpComplianceRule.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/Set-Group.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/Set-MailUser.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/Set-Mailbox.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/Set-MailboxRestoreRequest.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/Set-ManagementRoleAssignment.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/Set-OrganizationConfig.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/Test-DataClassification.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Hi @chrisda,
Do you have the description for IncludeSoftDeletedUserPermissions and IncludeUnresolvedPermissions in Get-MailboxPermission?
It's related to https://github.com/MicrosoftDocs/office-docs-powershell/issues/9089.
Thanks.

@dariomws, I responded in 9089.


Implemented pretty_str function for Txid and Wtxid

Description:

Implemented pretty_str() method for Txid and Wtxid to display hash values without the 0x prefix.
Removed conflicting Display trait implementations to prevent compilation errors.
Added functionality ensures clean hex string output for better integration and display formatting.

Testing:

Added local test cases to verify output formatting.
Ensured the code compiles and runs successfully without conflicts.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>0
Details

18 of 36 (50.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.03%) to 82.41%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

primitives/src/transaction.rs
18
36
50.0%

Totals

Change from base Build<PHONE_NUMBER>7:
-0.03%

Covered Lines:
19752

Relevant Lines:
23968

💛  - Coveralls

Contains several unrelated style regressions and a trailing space. Also breaks several tests when alloc is not enabled.

Can you describe the current problem you think this PR is fixing?


[Bug Report] I got an error when I use span-method in table

Element UI version
2.9.1
OS/Browsers version
Vivaldi
Vue version
2.6.10
Reproduction Link
https://codepen.io/gorilla0513/pen/KLrZgj
Steps to reproduce
use span-method
What is Expected?
No errors occur.
What is actually happening?
I got an error.
"[Vue warn]: You may have an infinite update loop in a component render function.

found in

---> <ElTableBody>
       <ElTable> at packages/table/src/table.vue
         <Root>"

span-method should be a pure function. Don't change state.

same as row-class-name

i have a  same  problem, how  to  solve this error


Please invite me to the GitHub Community Organization

Name
Hemant
Discord Username (if applicable)
hemantwasthere
Additional Context
Proudly Open Source Enthusiast

It's great having you contribute to this project
If you would like to continue contributing to open source and would like to do it with an awesome inclusive community, you should join our Discord Server and our GitHub Organisation - we help and encourage each other to contribute to open source little and often 🤓 . Any questions let us know.

Invitation sent for the GitHub Organisation. Welcome to the community 🎉#
Don't forget after accepting to make it public so it appears on your GitHub profile for everyone else to see, you can do this by finding your name in the GitHub organisation list and change the dropdown to public https://github.com/orgs/jaidevstudio/people
Like this

Tips for practising:
Remember contributing to open source is not just about code, its about collaboration, communication and adding value
I hope that helps

Please check your email or organisation page 🙏


Update lcvis.py - bug fix

A bug fix has been implemented to address Issue #36. The following changes have been made to lcvis:

The minima chi-bound visuals have been fixed. The program now works on both Matplotlib 3.5.1 and Matplotlib 3.9.1, however it is essential that additional testing is done to ensure that the program functions properly.
When saving a .dat file of the lcvis data using "Save as .dat" the data is now only represented once. Phases are now always between 0 and 1 (inclusive on 0, exclusive on 1) and each point is represented once instead of twice

Second bullet point does not apply, the version currently in the master branch actually already has this. I thought it did not.

@rkehoe Here is the update to lcvis. I have tested it on both Matplotlib 3.5.1 and 3.9.1, and both version ran lcvis


Media player never shows up after previosly using the media player integration.

Media player never shows up after previously succesfully using the media player integration.
I can't get the media_player for my pc to work.
[2023-03-23] HASS.Agent_20230323.log.txt
Got one pc to work. Other still won't add.

I am having the same issue. There is a file somewhere with old media player and the new agent is not discovered. I tried just about everything I can think of with no success (uninstalled everything on HA side on Windows side, rebooted, etc). The MQTT sensors and commands work, just media player is not discovered. When it discovers the old install, it shows as not available. I have two computers that work fine, just can't get the 3rd to work anymore.


Add cell folding for py:percent format, add ftplugin support

The first change sets the filetype for .ipynb buffers to jupytext right before it changes it to python. This just means any ftplugins defined for a jupytext filetype will be run appropriately.
The second change creates a ftplugin that sets foldexpr when g:jupytext_fmt == 'py:percent' such that vim can fold the notebook cells.
Also the PR is based off my other PRs and includes their commits, so if you want to merge them, just merge this one.

Closing here since I won't be doing further development on the vimscript version. See if the rewrite at https://github.com/goerz/jupytext.nvim still has any problems for your workflow.


Tile Service - Online base tiles disappears on zoom

Steps to reproduce

Load online map
Zoom in. When zooming in enough the tile layer disappears.
Tile layer reappears if you then zoom out.

DotSpatial version: master
Expected behaviour
Tile layer does not disappear on zoom in.
Actual behaviour
Tile layer disappears after zooming past a point.
Screenshots

There are no more tiles that can be downloaded for the given resolution. So nothing is shown. The only solution to show an image although none can be downloaded would be to resize the downloaded image.

That sounds like the behaviour that would be useful, i.e. resize the downloaded image.
This is the behaviour that other GIS packages use (from what I can tell).
Can you let me know how would this be achieved, or point me in the right direction?

Start here: https://github.com/DotSpatial/DotSpatial/tree/master/Source/DotSpatial.Plugins.WebMap

@sindizzy thanks for the pointer.
I found that the DotSpatial WebMap plugin has hard coded the allowed zoom levels to the range 2-18. When the zoom is outside this range a zoom level of -1 is returned causing the basemap to disappear. Where the avaliable zoom levels are less than this, e.g. a max zoom level of 15 is avaliable then the error loading image is shown.
When the -1 is replaced with 18 or an appropriate number the basemap is retained and scaled as you zoom (the behaviour I was after).
See https://github.com/DotSpatial/DotSpatial/blob/master/Source/DotSpatial.Plugins.WebMap/Tiling/TileCalculator.cs see DetermineZoomLevel on line 100.

I have a fix for this issue along with some other improvements to WebMap Zoom. How do I go about getting permission to push my local branch and submit a pull request?


WIP: transfers: introduce basic calculations for N-day transfer limits

Issue: https://github.com/moov-io/paygate/issues/368

Codecov Report

Merging #373 into master will decrease coverage by 4.25%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #373      +/-   ##
==========================================
- Coverage   64.17%   59.92%   -4.26%
==========================================
  Files          61       62       +1
  Lines        5971     6021      +50
==========================================
- Hits         3832     3608     -224
- Misses       1440     1745     +305
+ Partials      699      668      -31

Impacted Files
Coverage Δ

internal/accounts.go
10.25% <0.00%> (-67.95%)
:arrow_down:

internal/customers/client.go
13.91% <0.00%> (-63.48%)
:arrow_down:

internal/database/mysql.go
11.11% <0.00%> (-51.12%)
:arrow_down:

internal/filetransfer/sftp.go
32.80% <0.00%> (-39.69%)
:arrow_down:

internal/secrets/secrets.go
75.94% <0.00%> (-2.54%)
:arrow_down:

internal/micro_deposits.go
65.50% <0.00%> (-1.31%)
:arrow_down:

internal/filetransfer/config.go
70.61% <0.00%> (-1.03%)
:arrow_down:

internal/transfers/limits.go
72.00% <0.00%> (ø)

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 ba7427d...9ed0fed. Read the comment docs.

Codecov Report

Merging #373 into master will decrease coverage by <.01%.
The diff coverage is 72%.

@@            Coverage Diff             @@
##           master     #373      +/-   ##
==========================================
- Coverage   64.17%   64.17%   -0.01%
==========================================
  Files          61       62       +1
  Lines        5971     6021      +50
==========================================
+ Hits         3832     3864      +32
- Misses       1440     1449       +9
- Partials      699      708       +9

Impacted Files
Coverage Δ

internal/transfers/limits.go
72% <72%> (ø)

internal/filetransfer/sftp.go
70.37% <0%> (-2.12%)
:arrow_down:

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 ba7427d...9ed0fed. Read the comment docs.

I like the idea of tying default limits to a routing number (gateway). That makes more sense when paygate uploads to multiple FI's.


Add RangeType::Whitespace

In order to implement M-x SPC and M-\ for #33, there will need to be a way to target adjacent whitespace around the cursor. I'm going to add a RangeType::Whitespace to make this possible.

I renamed RangeType::Whitespace to WordStyle::Whitespace in #45 .


blank pre-screening fields cause server error on submit

ValueError: invalid literal for int() with base 10: ''

This should be taken care of with form validation.

Good find! I think I saw this yesterday but wasn't able to write it down fast enough.


Add variable for managing the creation of the default database and user

Hello,
I'd like to add the option to enable or disable the creation of the default database and user.
At the moment if I delete the default DB from the google console, terraform recreate it at the next run.

@morgante , @mirobertod
Hey, this is awesome and comes right on time for me. Pitty it's not documented on https://registry.terraform.io/modules/GoogleCloudPlatform/sql-db/google/latest/submodules/mysql.
How does that doc get updated?

Just tried to disable that flag for MySQL. Disappointed I couldn't. A 4.4.1 release would be appreciated.


Cache files created in $HOME -- XDG Base Directory Implementation Bug

First, thanks for supporting the XDG Base Dir spec!
I found this file in my $HOME directory:
$ cat .cachekeybase.app.serverConfig
{"alichtman":{"chatIndexProfilingEnabled":false,"dbCleanEnabled":false,"printRPCStaus":false},"lastLoggedInUser":"alichtman"}

It seems like the path is supposed to be .cache/keybase.app.serverConfig, but is missing a slash. I think this path is generated here:
https://github.com/keybase/client/blob/324f1120754b87ef5d4b249ba7000e408caae385/shared/constants/platform.desktop.tsx#L60-L68
It seems like $XDG_CACHE_HOME is assumed to have a trailing slash, but this is non-default.
The XDG Base Dir spec says:

$XDG_CACHE_HOME defines the base directory relative to which user-specific non-essential data files should be stored. If $XDG_CACHE_HOME is either not set or empty, a default equal to $HOME/.cache should be used.

Some logic could be added to check for a trailing slash at the end of $XDG_CACHE_HOME to avoid creating this file in the wrong directory.

Just noticed this as well, I created a PR with a fix.


[AzureMonitorDistro] Fix livemetrics reporting incorrect values

fixes #46417
This PR fixes a bug in LiveMetrics that was causing telemetry to be dropped and incorrect values to be reported.
This only affected LiveMetrics, telemetry sent to Kusto was not affected.
The internal buffer had a max capacity of 20 documents, and when the buffer was full, documents were dropped.
This PR removes that capacity.
Changes

Removed the DocumentBuffer class. This class managed the capacity of the ConcurrentQueue. Since we removed the max capacity, we don't need this class.

API change check
API changes are not detected in this pull request.


'Javalin' used without 'try'-with-resources statement

Describe your question
Hello,
When copying the snippet to get started, Intellij will warn the following:
'Javalin' used without 'try'-with-resources statement
What is the purpose with implementing AutoClosable? If I place it inside a try with resources block, it stops the server right after starting it.
I think it would be good if the most common getting started snippet does not produce an IDE warning.
Thanks for a cool lib
Cheers

You can read about it here: https://github.com/javalin/javalin/pull/1441


Feature can register the filter to the wrong application

Environment Details

Helidon Version: 3.1.0
Helidon MP
JDK version: 17
OS: Linux
Docker version (if applicable):

Problem Description
When a Feature registers a filter and multiple JAX-RS applications are present, the filter might be also applied to the application that did not have the Feature registered.
Steps to reproduce
Run the attached app and try to call /app2/greet endpoint. You might need to restart the app a couple of times until you get "Hello from the filter!" message.

helidon-quickstart-mp.zip

I discussed this issue privately with Martin. Indeed, their use case is currently not supported by Helidon. The issue here is that Helidon cannot track registrations done by Features using injection managers. As a result, if TestApplication1 happens to be registered first at startup, then MyFilter will be part of TestApplication2 as well --note that this would not happen if these filters are directly returned by the applications as opposed to registered via features.
I explored/implemented the possibility of using a new annotation to exclude certain providers (@ExcludeProviders). This new annotation may help in this use case. At the end, @martin-sladecek indicated that they will look for a solution that does not require multiple apps. For completeness, I'm attaching his modified application with the proposed enhancement based on the aforementioned annotation.
helidon-quickstart-mp-proposal.zip
This app works using the following branch: https://github.com/spericas/helidon/tree/issue-5875


Fix some tests

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:

NONE

when upgrading in this PR Velero to v1.11.0 a bug in this velero version was found which makes several tests fail (https://github.com/vmware-tanzu/velero/pull/6324). A fix was merged so I will wait with this PR until v1.11.1 will be released


[RIVER-1701] Remove old schema from migrations

Also, fix also a bug that was causing archiver nodes to always allocate according to the old pattern, and update some test cases that were using legacy schemas.
#1701

@sergekh2 I updated this PR according to your comment to remove the migration setting, and i also updated the migration tool, but I did not test the migration tool since we don't really need it right now.  I saw some flakes locally but after making changes they disappeared - if 5 consecutive CI tests pass I will consider this solid.

@sergekh2 I updated this PR according to your comment to remove the migration setting, and i also updated the migration tool, but I did not test the migration tool since we don't really need it right now. I saw some flakes locally but after making changes they disappeared - if 5 consecutive CI tests pass I will consider this solid.

Ok, all 5 runs after a lint fix are totally green.

Note: I can drop the "migrated" column in a follow-up PR, I did not do that here.


WPML Plugin doesn't work

From @tiagoefreitas on November 1, 2015 23:57
This is one of the most used WP plugins (wpml.org), not working with the following error:
WPML is missing some records in the languages tables and it cannot fully work until this issue is fixed.
Log:
2015/11/01 23:56:22 [error] 36#0: *1938 FastCGI sent in stderr: "PHP message: PHP Warning:  Invalid argument supplied for foreach() in /var/wordpress/wp-content/plugins/sitepress-multilingual-cms/inc/taxonomy-term-translation/wpml-term-translations.class.php on line 768" while reading upstream, client: <IP_ADDRESS>, server: , request: "GET /wp-admin/admin.php?page=sitepress-multilingual-cms%2Fmenu%2Ftroubleshooting.php HTTP/1.1", upstream: "fastcgi://<IP_ADDRESS>:9000", host: "9cabdd95058d85557189b2927bb34c0a.oasis.sandstorm.io"
Copied from original issue: dwrensha/wordpress-sandstorm#13

From @lulucious on February 7, 2016 18:18
Same problem... with SQLite... any solution??

From @dwrensha on November 2, 2015 2:2
Interesting! Thanks for reporting this. It sounds like it might be caused by our use of SQLite (via this plugin).


v2 feature: Add option to avoid that '[arguments...]' been printed

Checklist

[x] Are you running the latest v2 release?
[x] Did you check the manual for your release?
[x] Did you perform a search about this feature?

What problem does this solve?

By default, the help of a command shows the section USAGE with a text like:
cmd_name [global options] command [command options] [arguments...]
showing [arguments...] even when your command is not going to use any argument.

Solution description
Add a boolean to indicate that [arguments...] does not been printed.

This makes sense to me @tredoe! Although I want to check to see if anyone else in @urfave/cli also thinks this is a good idea? Since I know we've had some concerns about there being too many options.

I think we should just not print that if the app does not support arguments, makes no sense to hide it behind a flag.

not print that if the app does not support arguments

is there a way to indicate that an app does not support arguments?

is there a way to indicate that an app does not support arguments?

Looks like there isn't—we expose the args as a string slice directly off of the flag set. We don't have a way to tell if a user application happens to call that function or not.

Although I want to check to see if anyone else in @urfave/cli also thinks this is a good idea? Since I know we've had some concerns about there being too many options.

I do see this as a common use case, but if we added a configurable field for every common use case, we'd end up with a pretty big list of fields. It's trivial to pass a custom help template in for an App, so I'm in favor of not expanding our interface and letting users set the CustomAppHelpTemplate themselves:
app.CustomAppHelpTemplate = myCustomTemplate

Where myCustomTemplate can be the exact same as cli.AppHelpTemplate, minus the arguments.

Although I want to check to see if anyone else in @urfave/cli also thinks this is a good idea? Since I know we've had some concerns about there being too many options.

I do see this as a common use case, but if we added a configurable field for every common use case, we'd end up with a pretty big list of fields. It's trivial to pass a custom help template in for an App, so I'm in favor of not expanding our interface and letting users set the CustomAppHelpTemplate themselves:
app.CustomAppHelpTemplate = myCustomTemplate

Where myCustomTemplate can be the exact same as cli.AppHelpTemplate, minus the arguments.

I don't see a problem with a great list of fields; the standard library has several types with a pretty big list of fields i.e. at the package http.

HTTP solves a complex problem, as does a CLI library, so the number of knobs we end up with is definitely a product of that complexity. But part of managing software is trying to reduce the amount of complexity we have to deal with. For the http package, how many of those configuration fields have trivial alternatives?
A few of the problems with having too many fields:

More code for library authors to maintain/test
Commitment to backward compatibility—we can't easily undo adding an option to a library
Harder for users to find which configuration fields are relevant for them, versus which ones support niche use cases
More interactions between options that could be the source of bugs or other unexpected behaviors
Adding options now limits future design space in a few ways—every new feature has to be compatible with every existing feature, or the usability starts to suffer

HTTP solves a complex problem, as does a CLI library, so the number of knobs we end up with is definitely a product of that complexity. But part of managing software is trying to reduce the amount of complexity we have to deal with. For the http package, how many of those configuration fields have trivial alternatives?

The type Request from package HTTP was only an example; I have read the standard library to know that it has many types with a pretty big list of fields; more examples: type header at tar, or type FileHeader at zip.

A few of the problems with having too many fields:
* More code for library authors to maintain/test
* Commitment to backward compatibility—we can't easily undo adding an option to a library
* More interactions between options that could be the source of bugs or other unexpected behaviors

Your points are valid for whatever code that been added; I mean that it is not exclusive to have "many fields" into a structure.

* Harder for users to find which configuration fields are relevant for them, versus which ones support niche use cases

It is solved with the documentation.

* Adding options now limits future design space in a few ways—every new feature has to be compatible with every existing feature, or the usability starts to suffer

This was solved a long time ago with versioning software.

See also => https://github.com/urfave/cli/issues/1074

I'm making this as help wanted primarily because the desired solution almost certainly includes the work required for this issue => https://github.com/urfave/cli/issues/1074


I want use unity build Android but failed

I want to build an Android app in unity
I have successfully opened the demo program
But when it’s built on a mobile phone, it can’t start the camera smoothly.
Maybe you have some ideas?

Did you follow the steps and run build.py with docker? https://github.com/homuler/MediaPipeUnityPlugin#android
If yes also check if you are running Scene Director using GPU, android needs that.

@EmilioSantillana  I do this https://github.com/homuler/MediaPipeUnityPlugin#android
and open checked use GPU,but the camara still not work

Please share the log.
adb logcat Unity:V native:V tflite:V CRASH:E AndroidRuntime:E "*:S"

@homuler  thank you help

It's same as https://github.com/homuler/MediaPipeUnityPlugin/issues/119


Setup testing infrastructure

Overview

breaks down existing code into testable modules
adds Jest and tests to the service
adds codecov to report on code coverage impact for each pull request

Checklist

[x] All git commits are signed. (REQUIRED)
[ ] All new methods or updated methods have clear docstrings.
[x] Testing added or updated for new methods.
[ ] Verified if any changes impact the WebPortal Health Checks.
[ ] Appropriate documentation updated.
[ ] Changelog file created.

Issues Closed
SKY-692

@MSevey what additional comments would you like to see? I feel like describe and it descriptions are pretty good there.

Well I think it is a combination of a number of things.
First, the code itself has almost no comments. So it is very hard for reviews to review because you have to build all the context in your head from just reading the code.
Since we have so many repos and so many of them have 1 maybe 2 key contributors, the reviewers often don't have the same level of understanding of the repository as the person writing the code.
So even though the describe and it statements are relatively clear, it is hard for me to really understand if the testing is sufficient.
Part of this is also due to the fact that we are adding testing for an entire repo at one time that only you and karol have ever contributed to, so anyone else is at a pretty severe disadvantage in terms of reviewing the code.
And again, this is all historical issues, not issues with this PR in particular.
So in terms of comments that I would be looking for, it would first start with the code itself. The Resolver for example should have sufficient inline documentation that any reviewer and ramp up quickly on the intent of the code and understand the reasoning for why it is set up the way it is.
With that knowledge, reviewers can then better understand how the test coverage is working, and if there are any gaps that they see.
100% code coverage from a code coverage report doesn't necessarily mean we have good code coverage. The a bad test that covers the code is not better than no tests at all.


Do we need umbrella headers?

Experiment with removing explicit umbrella headers, now that we're requiring modules.
#no-changelog

It looks like the answer is yes for Objective C. There are plenty of examples in the quickstarts.


Issue 3352

Fixed flaky tests
Refactored ui_test command
Integration with Github actions

Hello, this is a new PR that replace the previous one, with copy-pasting my work.
I have an issue running Cypress tests, it doesn't run OpenRefine
I've made an attempt with a copy of packaging/test_pom.xml into packaging/pom.xml but it doesn't work.
And I am not familiar with maven, can someone point me to the right direction ?
Here is what OR says at run time
2020-12-08T13:33:08.4046142Z ##[endgroup]
2020-12-08T13:33:08.4303915Z Using refine.ini for configuration
2020-12-08T13:33:08.5029099Z You have 6954M of free memory.
2020-12-08T13:33:08.5030049Z Your current configuration is set to use 1400M of memory.
2020-12-08T13:33:08.5030950Z OpenRefine can run better when given more memory. Read our FAQ on how to allocate more memory here:
2020-12-08T13:33:08.5032723Z https://github.com/OpenRefine/OpenRefine/wiki/FAQ-Allocate-More-Memory
2020-12-08T13:33:08.5051372Z fatal: No names found, cannot describe anything.
2020-12-08T13:33:08.5204745Z Waiting for OpenRefine to load...
2020-12-08T13:33:08.5908667Z Error: Could not find or load main class com.google.refine.Refine

Also please note that on: [push] inside the workflow is for testing purpose only, will be replaced by on: [pull_request_target]

That seems to be because you are calling mvn process-resources only: that does not compile OpenRefine itself. You should do mvn process-resources build or just call ./refine build.

Thanks to @thadguidry I was able to fix the CI build
Questions: Why cypress test are not triggered? is it because we have two workflows with on: [pull_request_target] ?
But if we merge into pull_request.yml, we don't want the full java matrix for each browser, any thoughts?
I've created #3401 to add edge, that will be a separate PR later down the road

@fgiroud because you are using pull_request_target, the checks will not run until the PR is merged (and even then, they will only run on the next PR, assuming the branch the PR is made from branched off master after your commit). You could temporarily switch to pull_request (and then revert to pull_request_target before merging) but that would not solve the issue because you are doing the PR from a fork so secrets will not be available from there.
In any case it's of course fine to have follow-up PRs if things don't work as expected. I agree we should not duplicate the browser tests for each java version.

this remains unclear on my side, I've changed the workflow for 'pull request', so we can expect that the Cypress tests runs for each and every PR ?
Then why 'pull-request-target' was triggered for my last push ?

The docs probably explain it better than I do:
https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows#pull_request_target

@fgiroud FYI, Jobs run in parallel.  If it makes sense, we can always add another Job (have 2 Jobs in the workflow file). Just thought I'd point that out.

@fgiroud secrets are not available in builds from forks triggered by the pull_request event. They are only available in pull_request_target events.
This is a security measure to prevent people from uncovering secrets by submitting a pull request to a repository which changes the build script to print out the secret.
The plan you outlined above would only work if your branch was inside the official repository, not in your fork.

Ok I understands @wetneb
So the only way I see this working is that if you merge the PR as is (I reverted to pull_request_target)
The UI tests will not runs for this PR, and we are hoping that this will not fail the build for subsequent PRs, adjust if necessary

@fgiroud can be added as a collaborator in our GitHub org... like we did Tony before.  That might help ease this hurdle.

Oops, we should have done that earlier indeed - invite sent. Let's merge this then!

@wetneb and with him as a collaborator with write access, he can create branches to work with, submit PR's against them, he can later delete those branches after we've merged his work.  And we have protected "master" branch for force pushing (except Admins) so we should be good.  Essentially he becomes part of the team, permanent or temporary, however we decide depending on his quality and cooking skills :-)


[Password Generator] Improve UI and add options

Extension
https://www.raycast.com/joshuaiz/password-generator
Description
First of all thanks @joshuaiz for this lifesaver extension.
I'd like to suggest 2 small enhancements that might be handy for everyone and the overall XP when using this extension.
1. Changing the options:

Uppercase
Lowercase
Numbers
Symbols

2. Improve the password length:
Also, I don't know how to improve the size input, but it would be nice to use something like an input range as well from a minimum of 4-6 up to 50-100 characters.
References

https://1password.com/password-generator/
https://www.lastpass.com/features/password-generator
https://www.dashlane.com/features/password-generator
https://bitwarden.com/password-generator/

Who will benefit from this feature?
Everyone interested in generating passwords.
Anything else?
Again, thanks for making this extension happen.

@rafaell-lycan These are great suggestions. I'd like to add memorable passwords as well.
I'll try to add these when I can although no ETA as of now.


[TA] Change expandable enum to regular enum

TextSentiment don't need to be expandable enum. Regular enum should be sufficient. Which aligned with what .NET has now:
https://github.com/Azure/azure-sdk-for-net/blob/master/sdk/textanalytics/Azure.AI.TextAnalytics/src/TextSentiment.cs
fixes: #13595

@mssfang Wouldn't this be a breaking change to change the return types of existing model properties?

Close this PR because of this change is a breaking change and it should not be merged into master.


Unable to register to the custom namespace by nacos

[ ] I have searched the issues of this repository and believe that this is not a duplicate.

Ⅰ. Issue Description
Unable to register to the custom namespace by nacos，all registered are “Public” default namespace
Ⅱ. Describe what happened
If there is an exception, please attach the exception trace:
Just paste your stack trace here!

Ⅲ. Describe what you expected to happen
want to assign to my custom namespace
Ⅳ. How to reproduce it (as minimally and precisely as possible)

xxx
xxx
xxx

Ⅴ. Anything else we need to know?
Ⅵ. Environment:

JDK version : 1.8
OS : windows 10
Others: nacos-server:1.0.0  seata-server:0.5.0

it will be fix on 0.6.0

it will be fix on 0.6.0

thks，got it

mark

fixed on 0.9.0


need another set of braces for composer.json?

the composer.json file would not work for me until I added an external set of braces around the supplied piece of code:
{"repositories": [
{
"type": "vcs",
"url": "http://github.com/engineyard/ey-php-performance-tools"
}
],
"require": {
"php": ">=5.3.3",
"engineyard/php-performance-tools": "dev-master"
}
}

Yep, the documentation assumes you know that it's not a complete example of a composer.json file. That should probably be changed.
Ideally, we'd get this uploaded to Packagist. @dshafik - any plans to do that? Or is this package now end-of-life?


Add a 'waiting' status for nodes before the network starts

This was previously implemented in the now-stale PR https://github.com/MinaProtocol/mina/pull/7240

closing as a dupe of https://github.com/MinaProtocol/mina/issues/7091


Fixing the Azure Deployment GH Actions File

Motivation: PR to retest Issue #11
Changed:

Fixed the GitHub Actions command to a valid one (Line 67)

Review requested.

Final Status: Pull Request Denied
Motivation: In testing, the GH Actions need to be rewritten in a substantial matter.
Mitigation: In short time, we will PR significant changes to web_app.yml.


Check element exists is not correct when element named with " %"

Describe the bug
we have tried to check element exists or not with:
"if tm1.dimensions.hierarchies.elements.exists( dim_name, dim_name, attr_name ):"
when the element name contain " %" (space+percentage), the check result is not correct.
e.g.
case1: element named as "Test %"
tm1.dimensions.hierarchies.elements.exists( dim_name, dim_name, "Test %" ) = false,
tm1.dimensions.hierarchies.elements.exists( dim_name, dim_name, "Test%" ) = true
case2: element named as "Test Space"
tm1.dimensions.hierarchies.elements.exists( dim_name, dim_name, "Test Space" ) = true,
tm1.dimensions.hierarchies.elements.exists( dim_name, dim_name, "TestSpace" ) = true
To Reproduce
1.create an element named as "xxx %"
2.using elements.exists and print the result
Expected behavior
Element named with " %" should be able to check exists with " %"
Version
TM1py [1.4.1]
TM1 Server Version: [11.5.00000.23]
Additional context
Add any other context about the problem here.

solved with #286


Added a top-loading bar.

I have added a Loading Bar (aka Progress Bar) for long running tasks.i.e load more messages section here.
Functionality:

displays loading bar and simulates progress
automatically shows and hides Loading Bar for actions with promises.

YES

@abhijeet007rocks8 Please review.
I spent a lot of time working on this, If you could Please assign a level3 label.


Swipe gesture disappears

I started realizing that after one of my SwipyCell subclasses done in Storyboard go off the screen and come back, my swiping gesture doesn't work anymore.

Sorry, my bad. It was getting reused without any setup on my part.


preamble is not prepended

According to the readme

If you have custom hosts records, place them in file myhosts. The contents of this file are prepended to the unified hosts file during the update process.

but it is added after some other entries (see https://github.com/StevenBlack/hosts/blob/master/updateHostsFile.py#L366).
For example

This hosts file is a merged collection of hosts from reputable sources,
with a dash of crowd sourcing via Github

is before any content from myhosts.

The positioning is correct — below the file header comments — but I agree it's not properly described in the readme.  I'll fix.
Thanks Mateusz @matkoniecz !


distinct returns wrong result

sharding-proxy version:4.0.0
I insert some rows to sharding-proxy by my custom hash algorithm.

person_id
name
last_update_time
account
which data node

174fd27ef0f34fd5b9296f102ffdbd47
liuqiang
2020-02-12 20:47:10
3
ds_0

4295029899a64d1bbfc5b4d37b628f0c
wangwu
2020-02-12 20:28:22
2
ds_0

a672ba34d2f14f4d8e3ee9e8ccfd6ca5
liyi
2020-02-12 20:47:16
1
ds_0

bf840dc0eaf64f7a8a7493c3ffea8799
huangyao
2020-02-12 20:28:38
3
ds_0

c63b749e981a4dc6b4942b18978e0d08
lisi
2020-02-12 20:28:17
2
ds_0

e28da7bc9ddc45bdb2974041ed564fc3
zhangsan
2020-02-12 20:27:48
1
ds_0

f741d4fb69f14b869dac11e2889fe8c1
penggang
2020-02-12 20:28:34
3
ds_0

0596342115c14328b2b0458d0860a90c
lingang
2020-02-12 20:28:47
3
ds_1

2f8b95104c114cc5a8ab6bc86ef9ab62
luyang
2020-02-12 20:28:50
2
ds_1

4397392fb6274bf2bfcfc41ae1da55a5
tangliang
2020-02-12 20:28:42
1
ds_1

c57c358c49cc4da6b98477ad8a55db3f
help
2020-02-13 16:01:28
3
ds_1

d9edd130ab8241f6be4b96a12cdb0404
zhaoliu
2020-02-12 20:28:26
2
ds_1

f97ea21d03124aa8b59a23bad5585e81
wanger
2020-02-12 20:28:29
1
ds_1

then,I execute this SQL:
select distinct account from tbperson;

result is :
account
-|
3|
2|
1|
3|
2|
1|
right result gonna be:
account
-|
3|
2|
1|
look forward to your reply.

Could you make a simple demo for reproduce your issue?

Could you make a simple demo for reproduce your issue?

@kimmking
This example is simple enough.
I mean,SQL is sent to two physical nodes for execution, instead of merging the execution results.

I test it, eg: table: t_order CREATE TABLE IF NOT EXISTS t_order (order_id BIGINT NOT NULL AUTO_INCREMENT, user_id INT NOT NULL, status VARCHAR(50), PRIMARY KEY (order_id));
Insert user_id include
6
2
2
2
6
4
2
2
3
3
1
3
3
When exec "SELECT distinct user_id from t_order", the output resutl is Duplicate data，
3
1
3
4
6
4
2
6
2
When exec SELECT distinct user_id from t_order GROUP BY user_id, the resutl is Correct.
1
2
3
4
6

@nevereverever  You can use
select distinct account from tbperson order by account;

instead of your sql.
It will be executed to correct result.

If table user ~ 2 databases and 3 tables of each.
1. select distinct age from user                           => wrong
2.select distinct age from user group by age
3.select distinct age from user order by age
4.select distinct age from user group by age order by age
5.select distinct age from user group by name
6.select distinct age from user order by id
7.select distinct age from user group by name order by id
8.select distinct age from user group by 1

All of above sqls will executed to right result except the first one.

Oh, I see what you're saying.
This bug will be fixed in 5.0.0?
@kimmking


[Java] Cluster interface config.

This PR makes it possible to configure interface params for all of the Cluster channels. To that end it:

Replaces all of the ad hoc channels used for defining destinations with the call to ChannelUri#createDestinationUri.
Adds two new configuration properties aeron.cluster.follower.catchup.channel and aeron.cluster.leader.archive.control.channel. The former is used to create the replay channel when doing a catch up on the follower node. And the latter is used for creating a control request channel to the leader archive.
Adds an egressChannel configuration option to the ConsensusModule which is using the same configuration property as the AeronCluster (i.e. aeron.cluster.egress.channel). When the egressChannel is not defined then response channel from the leader to the client is based on the responseChannel sent by the client. However if it defined then it is used a basis for the response channel, i.e. if the client responseChannel contains an endpoint parameter then it will be used to set/substitute the value in the egressChannel of the leader node and otherwise leader's egressChannel is used as is.

Is it possible to write a system test showing the interface configuration?  Perhaps this could fall into the cluster topology tests?


fixed context menu deprecation

Thanks.  I will be back to working on packages this weekend and will
publish this.
On Thu, May 28, 2015 at 5:14 AM, Timothy Mertz<EMAIL_ADDRESS>wrote:

You can view, comment on, or merge this pull request online at:
https://github.com/mark-hahn/scroll-sync/pull/6
Commit Summary

fixed context menu deprecation

File Changes

M menus/scroll-sync.cson
https://github.com/mark-hahn/scroll-sync/pull/6/files#diff-0 (5)

Patch Links:

https://github.com/mark-hahn/scroll-sync/pull/6.patch
https://github.com/mark-hahn/scroll-sync/pull/6.diff

—
Reply to this email directly or view it on GitHub
https://github.com/mark-hahn/scroll-sync/pull/6.

Resolved by 41520da1c3bb93db9202964cd6a6292afbf21b05


fix aggregate bonded transaction error "Failure_Core_Future_Deadline"

fix #1490
upgrading to newer alpha-sdk

updated here #1552 .


MAINT: interpolate: use operator.index for checking/coercing to integers

Use the recommended idiom for checking integer inputs.
Strictly speaking, this is a backcompat break since some ValueErrors become TypeErrors, but I believe this is harmless (can't see any reason to catch these errors in library or user code).

Should we wait the 1.2 branch for this or go ahead and put this in? Since it is a private function I also don't expect any problems
@tylerjereddy


[WIP] Replace schema-inspector with ajv

Following up on a TODO item.
@zone117x
Checklist

[x] npm run test passes
[x] Tag 1 of @yknl or @zone117x for review

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

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Expenses seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Fix link to useZoomPanHelper example in Hooks

I noticed the link to the useZoomPanHelper example was broken in the Hooks section of the docs. This should point it to the right link.

Thanks @snoozxy!


Network compile for IoT

It would be really great to be able to cross-compile for IoT & low-power devices using the network. Any machine reachable by standard SSH has the ability to run commands and to send files. It's obviously a power-user feature but it'd be nice to be able to register another local PC as a build box, have a process to confirm viability

Does it have SSH
Can we access that using credentials supplied
Run a script to check tools are available
tarball the source folders
transfer via scp
untar on remote machine
build
package build artifacts
send build artifacts back to IoT device

So the workload is on the network, does that add overhead.

I'd imagine it needs some overhead compared with single-machine development. It would'nt need an enterprise back-end though if that is what you are asking, only need a central VCS or single SCM active branch snapshot (much smaller than a repo), a bootstrap script for deps, and to transfer back the binaries (conveniently ignoring communications traffic overhead).

I'm not sure what you are asking for. This works today.
See: https://github.com/dotnet/core/blob/master/samples/RaspberryPiInstructions.md

I think the ask here is to be able do work on the IoT device, send the files up to a server to do the builds, and then get the resulting app back on the IoT device. This could totally be built on top of git or another DVCS where you can push your changes to the server, have that server build when it gets changes, and then have something on the device looking for new outputs and acquiring them. Its an interesting idea for making the dev workflow on slow devices that either can't run the sdk or if they do, its unusable. The other alternative is to just do the dev work on the more powerful machine and automate the push to the device. @raffaeler has a solution for this published here: https://github.com/raffaeler/deploytool

This is more of a developer experience/CLI feature request. I'm going to move this to the CLI repo.

Issue moved to dotnet/cli #7778 via ZenHub


Releases with multiple versions in Modrinth would sometimes download the wrong jar file for a Minecraft version

Ran across this one while using it as a package manager for my Minecraft server.
The mod Discord4Fabric has multiple files listed for a release, each for a different version of Minecraft. My server runs on 1.19, and is defined as so in the pack.toml file, however when doing packwiz mr install discord4fabric it downloaded discord4fabric-1.18.2-1.8.0.jar instead of discord4fabric-1.19-1.8.0.jar.
fyyrraaa@DESKTOP-OwO-UwU:~/servers/fabric-1.19/packwiz-modpack$ packwiz mr install discord4fabric
Found mod Discord4Fabric: 'A beautiful Discord bot client for Fabric'.
Installing discord4fabric-1.18.2-1.8.0.jar from version 1.8.0

I could correct it by hand for now as a workaround.

The mod author has uploaded their versions incorrectly, please ask them to fix it - they need to create separate versions for 1.18 and 1.19, as the metadata currently implies that both files support both 1.18 and 1.19!

I'll create a new issue on their repo, thanks! I didn't know that's how it works on Modrinth.

Filed under Reimnop/Discord4Fabric#36


Fix cilium XDP demo

It looks like after moving to nuget package, the XDP demo does not work on the final test setup. Compilation of Cilium XDP program fails due to

missing header files
Some redefinitions.

@saxena-anurag and @shpalani are assigned.

Status: Reproduced.
Section: Compiling / Loading eBPF Program
PS C:\ebpf-for-windows-demo\Debug> .\cilium_based_agent.exe --bpf-lb-mode=snat --device=ethernet
Initializing daemon with mode = snat
Using interface:
  name         = ethernet
  mtu          = 1500
  ifindex      = 8
  IPv4 address = <IP_ADDRESS>

Cleaning up previous configuration ...
Compiling XDP eBPF program for SNAT ...
In file included from bpf_xdp.c:7:
In file included from ..\include\bpf_helpers.h:13:
..\include/ebpf_structs.h:14:10: fatal error: 'stdbool.h' file not found
#include <stdbool.h>
         ^~~~~~~~~~~
1 error generated.
Failed to compile the XDP program with error 0
Verifying the program ...
bpf_object__open failed with error 0
Initialization complete.

>$

Analysis:
Looking at the file from the below ebfp_structs,h, there is no NO_CRT defined.
#if !defined(NO_CRT)
#include <stdbool.h>
#include <stdint.h>
#else
typedef unsigned char uint8_t;
typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;
#endif
C:\ebpf-2023\ebpf-for-windows-demo\packages\eBPF-for-Windows.0.9.0\build\native\include\bpf_helpers.h
C:\ebpf-2023\ebpf-for-windows-demo\x64\Debug\include\bpf_helpers.h
C:\ebpf-2023\ebpf-for-windows-demo\packages\eBPF-for-Windows.0.9.0\build\native\include\ebpf_structs.h
C:\ebpf-2023\ebpf-for-windows-demo\x64\Debug\include\ebpf_structs.h

With the above fix of adding #define NO_CRT, there are additional errors....
C:\ebpf-for-windows-demo\Debug> .\cilium_based_agent.exe --bpf-lb-mode=snat --device=ethernet
Initializing daemon with mode = snat
Using interface:
  name         = ethernet
  mtu          = 1500
  ifindex      = 8
  IPv4 address = <IP_ADDRESS>

Cleaning up previous configuration ...
Compiling XDP eBPF program for SNAT ...
In file included from bpf_xdp.c:7:
In file included from ..\include\bpf_helpers.h:14:
..\include/ebpf_structs.h:17:23: error: redefinition of typedef 'uint8_t' is a C11 feature
      [-Werror,-Wtypedef-redefinition]
typedef unsigned char uint8_t;
                      ^
..\include\stdint.h:8:23: note: previous definition is here
typedef unsigned char uint8_t;
                      ^
In file included from bpf_xdp.c:7:
In file included from ..\include\bpf_helpers.h:14:
..\include/ebpf_structs.h:18:22: error: redefinition of typedef 'uint32_t' is a C11 feature
      [-Werror,-Wtypedef-redefinition]
typedef unsigned int uint32_t;
                     ^
..\include\stdint.h:9:22: note: previous definition is here
typedef unsigned int uint32_t;
                     ^
In file included from bpf_xdp.c:7:
In file included from ..\include\bpf_helpers.h:14:
..\include/ebpf_structs.h:19:28: error: redefinition of typedef 'uint64_t' is a C11 feature
      [-Werror,-Wtypedef-redefinition]
typedef unsigned long long uint64_t;
                           ^
..\include\stdint.h:7:28: note: previous definition is here
typedef unsigned long long uint64_t;
                           ^
3 errors generated.
Failed to compile the XDP program with error 183
Failed to compile XDP program for SNAT mode.
Failed to compile and load XDP program. error=183
PS C:\ebpf-for-windows-demo\Debug>

Further analysis, the root cause is stdbool.h was missing in the x64\Debug\include installation. Seems day-1 issue.
CI/CD had the stdbool.h included correctly.
clang -g -O2 -target bpf -mcpu=v1 -std=gnu89 -nostdinc -D__NR_CPUS__=4 -Wextra -Werror -Wshadow -Wno-address-of-packed-member -Wno-unknown-warning-option -Wno-gnu-variable-sized-type-not-at-end -Wdeclaration-after-statement -DSECLABEL=2 -DNODE_MAC={.addr={0x0,0x15,0x5d,0x6e,0x85,0x4}} -DCALLS_MAP=cilium_calls_xdp -Dcapture_enabled=0 -DDISABLE_LOOPBACK_LB -DNATIVE_DEV_IFINDEX=2 -I$(SolutionDir)cilium\load_balancer\bpf -I$(SolutionDir)external\cilium\bpf -I$(SolutionDir)external\cilium\bpf\include -I$(SolutionDir)cilium\load_balancer $(ClangIncludes) -c $(SolutionDir)external\cilium\bpf\bpf_xdp.c -o $(SolutionDir)$(Platform)$(Configuration)\cilium\object\bpf_xdp_snat.o -DEBPF_FOR_WINDOWS -DMODE_SNAT

Re-opening the issue, as this is not completely fixed yet.

ebpf program is not loading: Root cause identified. Working on the fix.

Fixed. Now the programs are loading.


AWS plugin: S3 client doesn't handle object keys with leading or consecutive slashes

Given object keys like //foo, or foo//bar, the S3 client reports a 404 not found error even when the key exists. According to https://stackoverflow.com/questions/48285381/how-to-use-getobject-when-key-has-leading-slashes, this is a limitation of the AWS Go SDK. The solution is to manually build the request. AWS has some code we could use that lets us munge the response to the right type (e.g. HeadObjectOutput or GetObjectOutput). Specifically, that code consists of using HeadObjectRequest/GetObjectRequest in the SDK and copy-pasting parts of https://github.com/aws/aws-sdk-go/blob/master/aws/request/request.go#L527-L541, so it is a bit hacky. We should only tackle this issue if we find that many S3 users do store keys like //foo or foo//bar.

I think I might just file this issue in https://github.com/aws/aws-sdk-go -- would be much better if it was fixed in the SDK.

Did you ever file that issue?

Thanks for the reminder -- I filed https://github.com/aws/aws-sdk-go/issues/2559

Response to aws-sdk-go issue provided guidance on how to handle this.


FPS Drop

Hello! I faced FPS drop on the draw() method, if a lot of lines will be in the drawing bounds. Any ideas about it?

Hi @mulybuq
I have already seen the issue you're talking about. I'm currently not sure how to resolve the issue.
I believe it occurs because we're redrawing all lines in draw(_:).
Maybe we can introduce a property to Line that determines whether this line needs to be drawn again...
I'll let you know about updates.

@LinusGeffarth, thanks for fast reply.
BTW, I tried this possibility, this way it will wipe out all the lines inside the overdrawing rect. Overdrawing view's bound is taking even more resources.
The possible solution I see, is to render all the lines to an image at the touchesEnded() function and place it below the view. But this will break erase function.
The other possible solution I see, is to render all the lines to an image and render part of this image equal to rect parameter of draw() function. I didn't achieve this yet, I will update you, if succeeded.

Hmmm I'm sure we'll find a way.
I appreciate your support & efforts!

@multybuq any updates so far? :)

Are those FPS drops only on the iOS Simulator or on a real iPad as well?

Real device. I haven't tested on the Simulator actually @lucashoeft

Hey there friends - I am using SwiftyDraw (really cool) in an iOS app and am seeing this issue still - was there ever a solution to this issue?  On my app, if there are complex lines, I can draw others, but it takes forever before I can actually start to draw.
Pete


Completed grants needs a carousel or multiple rows

Testing the initial grants data load I've realized we're missing the carousel, right now everything appears in 1 row.
We could add a carousel like in figma design, or start with a simple multiple rows and then iterate to a carousel. What do you think?

Yep, I see two options:

1 row Carousel
Show 2 rows + button "view all" that goes to a /completed-grants page.

We might need the button anyway?
For the "featured grants" we have the same issue (we'll have more). So I guess it depends how much weight do we want to put on them.

We might need the button anyway?

I believe so.
Completed grants is going to be so big that probably the carousel doesn't even make sense, so maybe 1 or 2 rows and a button or underlined link "See all completed grants (19)"
For Featured grants size carousel may make sense, but perhaps for simplicity we can have the same approach that we implement on Completed grants.


qat: copy annotations

Copied annotations from the QAT device plugin CR to the QAT deployment
Set apparmor annotation for QAT device plugin
Tested with envtest

Fixes: #645

@mythi thank you for the review. updated the PR according to your comments.


Facebook Native Ads 0 impressions

Plugin Version
google_mobile_ads 1.2.0
[✓] Flutter (Channel stable, 3.0.1, on macOS 12.3.1 21E258 darwin-x64, locale zh-Hans-CN)
    • Flutter version 3.0.1 at /Users/london/Library/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision fb57da5f94 (3 weeks ago), 2022-05-19 15:50:29 -0700
    • Engine revision caaafc5604
    • Dart version 2.17.1
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /Users/london/Library/Android/sdk
    • Platform android-32, build-tools 32.1.0-rc1
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] VS Code (version 1.67.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.42.0

[✓] Proxy Configuration
    • HTTP_PROXY is set
    • NO_PROXY is localhost,<IP_ADDRESS>,::1
    • NO_PROXY contains localhost
    • NO_PROXY contains <IP_ADDRESS>
    • NO_PROXY contains ::1

[✓] Connected device (3 available)
    • Pixel 3 (mobile) • 8AGX0SJ2X • android-arm64  • Android 12 (API 31)
    • macOS (desktop)  • macos     • darwin-x64     • macOS 12.3.1 21E258 darwin-x64
    • Chrome (web)     • chrome    • web-javascript • Google Chrome 102.0.5005.61
    ! Error: LondonXiPhone is not connected. Xcode will continue when LondonXiPhone is connected. (code -13)

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Details

Our app has 3 Native ad units and 1 Interstitial ad unit, they all works properly when we dev the app using native android.
Last week about 5 days ago, we created new 3 Native ad units and new 1 Interstitial ad unit for releasing flutter version app.
We tested the version on last Friday(3 days ago, 2 days after units created) and the test Admob/Facebook ads all requesting/bidding/showing properlly, but we cannot read impressions rate as DEBUG mode.
Until now, after release to users, Facebook's console shows the 3 new Native ad unit's impressions is 0, while the 1 Interstitial ad unit's impressions is correct.

Maybe Facebook not takes Flutter AdWidget as impressions?

@maheshmnj Thanks for replying, works the Facebook Interstitial ads works properly, and admob and other mediation such as Pangle 's Native ads works properly too.
After dive into FacebookAdapter class, we realized we should call nativeAdView.setNativeAd(nativeAd) AFTER nativeAdView.iconView = iconView, instead of BEFORE.
We made a release last night and waiting for the further infomation.

Thanks for the update @LondonX, Glad you were able to resolve the issue, Closing as solved based on the above response.


(STJ) Possibility to pass as parameter an instance of JsonSerializerOptions in constructor to follow Microsoft's best practices

According to the official documentation it says that it should not be instantiated continuously:
https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/configure-options?pivots=dotnet-8-0#reuse-jsonserializeroptions-instances
In the template you can see that it is instantiated without the possibility of passing an instance to it from outside.
Relevant sections of the template:
https://github.com/RicoSuter/NSwag/blob/v14.0.1/src/NSwag.CodeGeneration.CSharp/Templates/Client.Class.liquid#L13-L17
https://github.com/RicoSuter/NSwag/blob/v14.0.1/src/NSwag.CodeGeneration.CSharp/Templates/Client.Class.liquid#L68-L81
Code in charge of generating the instantiation in NJsonSchema:
https://github.com/RicoSuter/NJsonSchema/blob/v11.0.0/src/NJsonSchema.CodeGeneration.CSharp/CSharpJsonSerializerGenerator.cs#L78-L89
I would like it to be in the constructor and not in a static way by following dependency injection patterns which is how I instantiate the clients.
EDIT: right now I have manipulated the template to do what I want but it is difficult to update NSwag if you have modified a template like this because every time there is a change you have to spend time to recompose everything (nswag's changes + mine).

Couldn't agree more. This looks similar to #4662.


Add Iceberg Tracking Beacon

Insert URLs to the project here:
https://github.com/cryologger/ice-tracking-beacon

[x] The projects is active, documented, open source licensed, shows usage from external parties and is directly targeting environmental sustainability. Find more details in the Contribution Guide.

All issues labeled as 'Good First Issue' of the project listed on OpenSustain.tech will be visible on ClimateTriage.com. This is a great way to welcome new community members to your project.

@adamgarbo


Subtask lc 335 update token after setting password

replaced by https://github.com/Civil-Service-Human-Resources/identity-service/pull/119


feat: support topic sequence page

Overview
This PR updates the protos selectively to include the topic sequence page changes from this PR on the client protos repo. In the future we will update to the released protos.
There are two changes: the topic subscription logic and the topic subscribe logic.
Topic Subscription changes
Updates the topic subscription to take the sequence page into account:

Keeps track of last known sequence page in addition to sequence number so we can reconnect gracefully
Includes sequence page detail for topic item and discontinuity objects

Topic Subscribe changes
Previously the topic client Subscribe method took a TopicSubscription as input but ignored the resume at sequence number. While the sequence number was used internally on reconnects and not expected to be used externally, we feel it could be confusing if a user sets the sequence number and we ignore it.
Since we also add the sequence page, we also pass that to the subscribe RPC.
To test/confirm once service is live

Suppose we subscribe to a long-running topic and the sequence page is not zero. Will the first message we receive still be a heartbeat, or a discontinuity?
Test re-subscription on a sequence page change works

Opening for early review. Once the service is live, I will update the protos and rebase.

Ready for final review.


feat(tasks): support passing arguments as environment variables

This has two benefits. Firstly, it allows us to avoid logging sensitive arguments like the keystore
password to the console, and secondly it allows it to support special characters in the keystore
password.
Closes EDITOR-66
Also fixes an issue when calling the package task not from a tree node

Warnings

:warning:

src/tasks/buildTaskProvider.ts#L63 - src/tasks/buildTaskProvider.ts line 63 – Forbidden non-null assertion. (@typescript-eslint/no-non-null-assertion)

:warning:

src/tasks/buildTaskProvider.ts#L95 - src/tasks/buildTaskProvider.ts line 95 – Forbidden non-null assertion. (@typescript-eslint/no-non-null-assertion)

:warning:

src/tasks/packageTaskProvider.ts#L41 - src/tasks/packageTaskProvider.ts line 41 – Forbidden non-null assertion. (@typescript-eslint/no-non-null-assertion)

:warning:

src/tasks/taskPseudoTerminal.ts#L82 - src/tasks/taskPseudoTerminal.ts line 82 – Forbidden non-null assertion. (@typescript-eslint/no-non-null-assertion)

Messages

:book:

:white_check_mark: All tests are passing
Nice one! All 32 tests are passing.

:book:

:floppy_disk: Here's the built vsix for this change.

  Generated by :no_entry_sign: dangerJS against bc4fd7f5853153809f3f970475763876fc29c01f


Add Rhea IDs to RDF

Example PW:
https://www.wikipathways.org/index.php/Pathway:WP4162
Since the Rhea info is not in the RDF, it would be nice to add this for DSMN.

Done.
<http://rdf.wikipathways.org/Pathway/WP4162_r96442/WP/Interaction/ide55fb050>
        a                   wp:Conversion , wp:Interaction , wp:DirectedInteraction ;
        dc:source           "Rhea"^^xsd:string ;
        dcterms:identifier  "17213"^^xsd:string ;
        dcterms:isPartOf    <http://identifiers.org/wikipathways/WP4162_r96442> ;
        wp:bdbRhea          <http://identifiers.org/rhea/17213> .

Have to open this one again, due to a failure in PW : https://www.wikipathways.org/index.php/Pathway:WP4312
This doesn't include IDs on the interactions, but names of PWs (with spaces, which make the RDF unreadable). @egonw would like to build a test for this first, so before we fix the PW, check with him first!

I fixed all interaction IDs in the aforementioned PW, leaving one to build a Jenkins test on (with two spaces in the name).

Can you plz check it again?

?I will today ;)
Kind regards,
Denise Slenter MSc
UNS50 H1.302
T: +3143-3881962 (office)
T: +316-50585586 (mobile)

From: Egon Willighagen<EMAIL_ADDRESS>Sent: 21 November 2018 20:49
To: wikipathways/GPML2RDF
Cc: Slenter, Denise (BIGCAT); State change
Subject: Re: [wikipathways/GPML2RDF] Add Rhea IDs to RDF (#56)
Can you plz check it again?

You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHubhttps://github.com/wikipathways/GPML2RDF/issues/56#issuecomment-440789123, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AZD3yLaOYoy3zs0Y5wJJk6xzCIctR98Oks5uxa5MgaJpZM4YpDrS.

Yes I can load in the RDF!
And with the following query:
SELECT DISTINCT ?interaction ?PW ?rheaID WHERE {
 ?interaction a wp:Interaction.
  ?interaction dcterms:isPartOf ?PW .
  ?interaction wp:bdbRhea ?rheaID .

}

I even get results:

Probably the same 4 as you had @egonw

I checked the two PW which have Rhea IDs:
1.
https://www.wikipathways.org/index.php/Pathway:WP3620
Also had other interaction annotations (such a BioCyc and KEGG-reaction).
I think we should standardise to Rhea finally (for now, there is not a lot of standardisation possible).

https://www.wikipathways.org/index.php/Pathway:WP4162
Only gives a Rhea ID, when there is a source and a target compound. I believe this is intentional, but we have to check how to get the side metabolites then properly linked up to the reaction (and then later the RDF).

I checked and Rhea indeed has cross-links, under a CC-BY license. So we cannot use that in the RDF at this moment. But we can make sure we are compatible with their SPARQL endpoint: https://sparql.rhea-db.org/sparql

Okay, so how does that work then with the interaction mapping file we are creating from the Rhea webservice? Should we add a licence statement there? https://www.bridgedb.org/mapping-databases/rhea-interaction-mappings/

Closing this issue for now. Getting more Rhea identifiers in WP is another issue.

Normalization to wp:bdbRhea can be checked in WP4162.


skeleton annotation extraction and construction of custom dataset

I would like to check if I can use MediaPipe  (https://developers.google.com/mediapipe)  to extract the skeleton and construct the annotation of the skeleton information of my custom RGB video dataset.
Then, input that .json file into the custom_2d_skeleton.py to construct .pkl file and conduct training.
I tried to use openpose to extract the skeleton, but it takes forever to install it. So just curious if I can use the MediaPipe.
If so, do you happen to know where to change in the config

Hello, I would like to ask if you succeeded?


initial import of sample app project

Initial import of the sample app project

Thank you @carolynvs
Added code of conduct