is ADX correct? (difference with TradingView)

I'm comparing the results from TradingView charts (with ADX built in indicator), same input period, same candles (this is ok because the SMA for example is returning same values in TradingView and with trading-signals), but the result for ADX is not the same!
Does somebody know why is that?
Do you know some other chart with ADX indicator to compare with a 3rd reference?
This is the code used by TradingView (in PineScript):
up = change(high)
down = -change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
truerange = rma(tr, len)
plus = fixnan(100 * rma(plusDM, len) / truerange)
minus = fixnan(100 * rma(minusDM, len) / truerange)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)

plusDM and minusDM is the equivalent to
const { mdm, pdm } = this.directionalMovement(this.prevCandle, candle);
and they are returning the same values in TradingView and trading-signals., but the rest of the code is a bit confusing, can you note some difference in the way is calculated the ADX in TradingView? which one is the correct?

One difference seems to be the smooth function used, TradingView is using "rma":

Moving average used in RSI. It is the exponentially weighted moving average with alpha = 1 / length.

that gives some small difference in "plus" and "minus" from TradingView (corresponding to pdi and mdi from trading-signals).
But the important difference in values I think is in the last formula for adx, are TradingView and trading-signals doing different things?

Hi @enriquepiatti. I think TradingView's ADX implementation is not standard compliant here. I have tested my ADX implementation and verified it with another implementation as you can see here: https://github.com/bennycode/trading-signals/blob/v2.0.1/src/ADX/ADX.test.ts#L36-L39
My implementation uses SMMA for smoothing. If it makes sense we can also add RMA (Relative Moving Average) as an option. Can you give me some input data and expected results for testing?

I think is not the only difference the SMMA vs RMA, here is the data for testing:
close:
[49320,48777,48708,47911.5,47883.5,47026,46860,46891.5,46897.5,46769,46956,46828.5,46928,47185,46832.5,46791.5,46870.5,46959,46999,46922.5,46981.5,47249.5,47179,46835.5,47261,47250,47213.5,46785.5,46917.5,47108,47162,47483,47185.5,47193,47410,47455.5,47340,47262.5,48123.5,48172,48190.5,48190,48333.5,48292.5,48911.5]
high:
[49370.5,49365,48825,48728.5,48018,48049,47244.5,47024,47072.5,47000,47040,47174.5,47400,47245.5,47399.5,47040,47050,47090,47078,47027,47046,47312,47422,47390,47300,47647,47490.5,47263,46974.5,47189,47249,47575,47582.5,47329,47495.5,47787,47539.5,47399,48275,48426.5,48273,48337,48370,48559,49213.5]
low:
[48844.5,48777,48644.5,47845.5,47600.5,46813,46735,46566.5,46685,46741,46702,46805.5,46272,46852.5,46828,46632,46505,46870,46718,46735.5,46834,46981,47116.5,46815.5,46335.5,47172,47203.5,46667,46573,46856,47027.5,46840,47125.5,46980.5,47182,47344.5,47230,46999.5,47178.5,48124,48004.5,48162,48140,48275,48185]
Expected result (this is the ADX value from TradingView for the last item):  24.51

Thank you for providing sample data. On Trading View there are multiple implementations of ADX from different authors. Which one are you using?

I'm using official ADX from TradingView, is marked as "built in", Average Directional Index.
It allows to see the pinescript code too, is the one I've posted (actually I have simplified it a bit to make it more clear what it's doing)

I couldn't replicate the same result from TradingView for RMA, not sure what I'm doing wrong, maybe you can see it:
class RMA extends MovingAverage_1.MovingAverage {
    constructor() {
        super(...arguments);
        this.prices = [];
        this.alpha = 1/this.interval;
        this.rma = 0;
    }
    update(price) {

        this.prices.push(new big_js_1.default(price));
        if (this.prices.length > this.interval) {
            this.prices.shift();
        }

        if(this.rma === 0){
            this.rma = price;
        }
        // this.rma = this.alpha * price + (1 - this.alpha) * this.rma;
        this.rma = this.rma + (price - this.rma)*this.alpha;
        this.setResult(new big_js_1.default(this.rma));

Can you reproduce the results from Tulip Indicators' ADX implementation? https://tulipindicators.org/adx

reproduce how? I don't know how to use Tulipan indicators, do they have an online version available?
Anyway, I think this is something related with TradingView, they must be calculating the ADX in a different way, probably is just that RMA instead of SMMA.
The problem I could't reproduce the values from RMA either!
and I think that's because RMA from TradingView is not using only the candles from the period/interval passed to the indicator, but is using all the candles, the interval is used for the calculation, but it requires more history to get the value used in TradingView (I will try that later).
But maybe could be a good addon to have an RMA and an ADX similar to TradingView too, is a very popular chart

You don't have to run Tulip Indicators. They have their test input and test output listed here: https://tulipindicators.org/adx
I also have some other indicator implementations listed here: https://github.com/bennycode/trading-signals#alternatives
Usually, I check the test data of other libraries to know if my library is compatible or consistent with their output. That's an alternative approach to testing with TradingView.


Prevent help from erroring if there are tons of commands.

Sometimes, a bot might have more than enough commands to make the help command's disambiguation be longer than 2000 characters. Perhaps a bot has 225 commands and a user tries to do "help a". If enough commands have "a" in them, this might end badly.
This PR utilizes the same prevention method as the types to prevent this from happening. If more than 15 commands are found, it will simply send "Multiple commands found. Please be more specific." instead of erroring out.

This is a good change.


RD Fix logic for yearly donations beginning on 2/29

We fixed a bug in the logic for yearly donations that start on February 29th.
Critical Changes
Changes
Issues Closed
Community Ideas Delivered
New Metadata
Deleted Metadata

@force2b @RadSFDeveloper Ready for review.  Thanks!
@sam-knox Please review the fix description.  Thanks!

**lurch: attach W-040741

Tracking W-040741


Synchronous client APIs

This example demonstrates how to use sync APIs
Please give me feedback if this improves the ease of use. Will be merged by the end of this week if there are no comments. Feel free to tag other people who might be interested
@TotalKrill @qm3ster @MightyPork @amrx101

I cant really put a finger on it, but this feels weird, also how would I handle failing connections here? or know when a reconnect has happened, or stuff like that.
Those events are interesting, but often unrelated to what I want to do, which is send/receive data. Sometimes i want to know about disconnections and such so that I can fix so my send/receive does work again.
let opts = MqttOptions().set_reconnect(...).set_throttle(...);
let client = MqttClient::new("clientname", opts);

// let connection be a real object that you can run connection.run() on or connection.run_in_background() or connection.events().next().

let connection = client.connect().expect("couldnt connect");
let conn_handle = connection.run_background();

let hello_sub = client.subscribe("hello/world").expect("client could not subscribe");

let send_client = client.clone();
thread::spawn(move || {
    for i in 1..10 {
        send_client.publish("hello/world", i.as_bytes()).expect("Could not publish");
    }
)

while let Ok(num) = hello_sub.next() {
    println!("{}",num);
}

client.disconnect();
conn_handle.join();  // wait until the connection has died

What do you think about something like this for an API? Its quite similar to rumqtt. But separates the connection part from the client part, making the client able to be send and sync, while hiding the internals from a user if wanted.

@TotalKrill I don't know about this way to do subscriptions... It looks fine in the example, but in a more complex application you'd need to manage many such "subscription channels" - instead of having a single channel like in rumqtt and matching on the topic string. It quickly gets messy... though I also see its appeal if your subscriptions are known at compile time.
I plan to try porting our application to this experimental client, if I find the time, to see how it feels in real code

I think the original interface by @tekjar  is adequate.
I do like methods like .publish and .subscribe like @TotalKrill suggests, but I feel like end users should just wrap the channel themselves. In fact it's Publish::new() and such that I don't like, because I always end up making my own client with methods, because I need to for instance set retain to true sometimes, so I have publish and retain methods.
As for the subscription channels, that's definitely something useful for a high level interface. They can also have a .close() method that unsubscribes but gives you the channel back so you can drain the last messages that had time to come in.
Tbh I only use async, because I also use timers and such, but I also made a toy synchronous example that looks very different, so I'll post it here for completeness.
I don't think it's adequate though, since it's not general purpose at all:
#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let mut temp = None;
    let mut setpoint = None;
    mq::simple_loop(vec![OFFICE_THERM, OFFICE_SETPOINT], |topic, payload| {
        match topic.as_str() {
            OFFICE_THERM => temp = from_slice::<Therm>(&payload).ok().map(|x| x.temperature),
            OFFICE_SETPOINT => setpoint = from_slice::<Decimal>(&payload).ok(),
            other => {
                error!("oh god oh fucc what is topic: `{}`", other);
                return mq::Ruling::Die;
            }
        }
        if let (Some(temp), Some(setpoint)) = (temp, setpoint) {
            mq::Ruling::Post(vec![("test/cool".into(), format!("{}", temp > setpoint))])
        } else {
            mq::Ruling::Nothing
        }
    })
    .await
}

(don't mind the async, the point is that the closure is not async, which allows the persistent &muts)

Yeah, I don't agree that end users should wrap the channels themself. My suggestion was based on the assumption that the async code we had was the mqtt client. And the high level sync code was to be the wrapping of that code. A simple client if you will.
Most users will silently use the library, that's kind of what you want, because then it has solved their problem.
I agree that the way to handle subscription in my code has its drawback and can become unwieldy quickly. I will think some more on that, but I think that having a client object with 'subscribe', 'publish'  and 'retain' methods on would be nice for end users.
I get wanting to manage the channels myself, but that is not intuitive for new users. I don't want to send a subscribtion, I want to use the client to subscribe.

I'll try to consolidate all the concerns here and put down my opinion

how would I handle failing connections here? or know when a reconnect has happened, or stuff like that.

They will be part of notification channel (implementation isn't complete yet)

Why not just have good old publish, subscribe, unsubscribe, disconnect APIs

The problem is that they come with baggage. All these APIs are an abstraction over a channel. They hide that there is a channel underneath. Given rust doesn't have optional arguments, there'll be API blowup. publish, try_publish, timeout_publish (repeat these subscribe, unsubscribe, disconnect). We have these methods which just looks like channel Sender methods because we are trying hard to cover that this is a Sender internally. Even if we do this, notifications are on a channel Receiver which is not hidden by a callback.
The advantage with channel interface is that people are already very familiar with it and there is symmetry (both outgoing and incoming are over a channel)

I cant really put a finger on it, but this feels weird,

Does it feel new or does it feel wrong?

What do you think about something like this for an API? Its quite similar to rumqtt. But separates the connection part from the client part, making the client able to be send and sync, while hiding the internals from a user if wanted

Yeah they are fine. But the  API and symmetry issues remain. I think the problem here is with the word Client.  Connection would be a better term I guess
let connection = rumqtt::Connection::new(options);
let (tx, rx) = connection.channel(10);
connection.start()

Also what internals (and why) are we hiding? That communication with eventloop is over a channel?

A channel per subscription notifications

That's an interesting idea. I see some cool advantages and some issues which requires a bit more code. We should probably discuss this in a separate issue. But a single notification channel should be the default IMO

I do like methods like .publish and .subscribe like @TotalKrill suggests, but I feel like end users should just wrap the channel themselves. In fact it's Publish::new() and such that I don't like, because I always end up making my own client with methods, because I need to for instance set retain to true sometimes, so I have publish and retain methods

AFAIU, we are wrapping these (be it inside the library or outside) for 2 reasons

We are too used to and anchored to having a Client and publish, subscribe methods on it.
People reading documentation will most probably expect this because they used similar API in other languages

We are trying to cover the channel interface because we are choosing "Familiarity over correctness"
(Don't mean to say that there is anything wrong with it)

This is all I can think of.

A mechanism to handle disconnects of the Client is used very often in many organisations IMHO.
.publish, .subscribe etc on Client provides familiarity to people who migrate from other languages, I had used Golang's mqtt library which has Publish, Subscribe. Familiarity may help in adoption. But we can forgo this if causes bloated API.

+1 for using Connection rather than Client as Client kicks in a search of methods like publish, subscribe etc.

Is connection.cancel_handle() necessary because users might be unable to drop a sender because they tried to send and it blocked forever?
How is subscription on reconnection handled?
And since we are already spawning a loop, I feel "Familiarity over correctness" Client is the way to go for dead simple usage. A Sender and a Receiver are not actually all that similar, they are just conceptually linked. So a Client/Sender/Publisher/Publicist with methods that construct and enqueue a message in one call are very attractive. Whereas the notification receiver should be an iterator.

Ok I yield. We'll go with the familiar Client model with 12 APIs ( publish, subscribe, unsubscribe & disconnect * 3)

Actually this doesn't have to be 12 APIs. Timeouts can be configured to be a part of Client and just have 4 APIs. Cool. I'll implement this today

You can also use things like Option<Duration> for the timeouts. What would be the difference between publish and try_publish?

@MightyPork publish would block indefinitely when the channel is full while try_publish will fail immediately

but publish would also be fallible, with a timeout error?

@MightyPork Ok but imagine
ShamefulClient, TimeoutClient and TryClient :D

I don't mind fallible functions, I just wish there was a shorthand in rust for 'unwrap()' similar to 'fallible_fun()?' imagine 'fallible_run()!!'

Yeah, I know, I just write a lot of testing code, which is a form of real code. So having !! would just be a nice feature :)

To bring the discussion back on track, I am interested in how the classic implementation went?
I also wanted to add that I appreciate your hard work and for listening to our opinions in your project, just don't take what we say as facts. You are the mastermind of this piece of software :)

@TotalKrill Didn't get time the other day due to broker work. Here is a working example with client APIs
https://github.com/tekjar/rumq/blob/sync/rumq-client/examples/syncpubsub.rs

I also wanted to add that I appreciate your hard work and for listening to our opinions in your project, just don't take what we say as facts.  :)

Sorry for the late feedback, At first glance I really like the new client APIs. I will try to find some time to tinker around with it and see how it handles different edge cases and such things. But the feel is quite nice :)

Ahh..Even I so want to finish this and make a release on crates (by renaming this crate back to rumqtt)..Hope I find some time this week

Hi, again, thanks for your work. I wonder if this sync api is intended to replace the async one? will it be deprecated? or continue to be developed and available?

@rcastill It won't replace. Both will coexist

Reorganized this repo and pushed rumqttc 0.0.1 to crates with synchronous client. Feel free to open a new issue to discuss this further


"Hirb Error: missing attribute:" when using custom ActiveRecord select statements and hirb.yml

A custom ActiveRecord select statement like
BlogEntry.select(:title,:url).group(:title,:url).having("count(*) > 1")
works fine without Hirb:
irb(main):060:0> Hirb.disable
=> false
irb(main):061:0> BlogEntry.select(:title,:url).group(:title,:url).having("count(*) > 1")
D, [2015-07-08T13:06:40.873613 #3] DEBUG -- :   BlogEntry Load (6.7ms)  SELECT "blog_entries"."title", "blog_entries"."url" FROM "blog_entries" GROUP BY "blog_entries"."title", "blog_entries"."url" HAVING count(*) > 1
=> #<ActiveRecord::Relation [#<BlogEntry id: nil, url:  ...   ]>

But when Hirb is enabled, and using hirb.yml, it will give an (unnecessary) missing attribute error. I say unnecessary because when I have specifically specified in the select statement the fields I'm interested in, I don't want the Hirb.yml definition (which I use as my default) to come back to bite me, like this:
irb(main):062:0> Hirb.enable
=> true
irb(main):063:0> BlogEntry.select(:title,:url).group(:title,:url).having("count(*) > 1")
D, [2015-07-08T13:06:48.941044 #3] DEBUG -- :   BlogEntry Load (5.3ms)  SELECT "blog_entries"."title", "blog_entries"."url" FROM "blog_entries" GROUP BY "blog_entries"."title", "blog_entries"."url" HAVING count(*) > 1
Hirb Error: missing attribute: blog_id
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.2/lib/active_record/attribute_methods/read.rb:93:in `block in _read_attribute'
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.2/lib/active_record/attribute_set.rb:31:in `block in fetch_value'
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.2/lib/active_record/attribute.rb:150:in `value'
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.2/lib/active_record/attribute_set.rb:31:in `fetch_value'
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.2/lib/active_record/attribute_methods/read.rb:93:in `_read_attribute'
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.2/lib/active_record/attribute_methods.rb:50:in `__temp__26c6f676f59646'
    /app/vendor/bundle/ruby/2.0.0/gems/hirb-0.7.3/lib/hirb/helpers/object_table.rb:10:in `block (2 levels) in render'
    /app/vendor/bundle/ruby/2.0.0/gems/hirb-0.7.3/lib/hirb/helpers/object_table.rb:10:in `each'
    /app/vendor/bundle/ruby/2.0.0/gems/hirb-0.7.3/lib/hirb/helpers/object_table.rb:10:in `inject'
    /app/vendor/bundle/ruby/2.0.0/gems/hirb-0.7.3/lib/hirb/helpers/object_table.rb:10:in `block in render'
    /app/vendor/bundle/ruby/2.0.0/gems/hirb-0.7.3/lib/hirb/helpers/object_table.rb:9:in `each'
    /app/vendor/bundle/ruby/2.0.0/gems/hirb-0.7.3/lib/hirb/helpers/object_table.rb:9:in `inject'
    /app/vendor/bundle/ruby/2.0.0/gems/hirb-0.7.3/lib/hirb/helpers/object_table.rb:9:in `render'
    /app/vendor/bundle/ruby/2.0.0/gems/hirb-0.7.3/lib/hirb/helpers/auto_table.rb:22:in `render'
    /app/vendor/bundle/ruby/2.0.0/gems/hirb-0.7.3/lib/hirb/formatter.rb:73:in `_format_output'
    /app/vendor/bundle/ruby/2.0.0/gems/hirb-0.7.3/lib/hirb/formatter.rb:56:in `format_output'
    /app/vendor/bundle/ruby/2.0.0/gems/hirb-0.7.3/lib/hirb/view.rb:205:in `render_output'
    /app/vendor/bundle/ruby/2.0.0/gems/hirb-0.7.3/lib/hirb/view.rb:123:in `view_output'
    /app/vendor/bundle/ruby/2.0.0/gems/hirb-0.7.3/lib/hirb/view.rb:201:in `view_or_page_output'
    /app/vendor/bundle/ruby/2.0.0/gems/hirb-0.7.3/lib/hirb/view.rb:187:in `output_value'
    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/irb.rb:493:in `block (2 levels) in eval_input'
    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/irb.rb:624:in `signal_status'
    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/irb.rb:489:in `block in eval_input'
    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/irb/ruby-lex.rb:247:in `block (2 levels) in each_top_level_statement'
    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/irb/ruby-lex.rb:233:in `loop'
    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/irb/ruby-lex.rb:233:in `block in each_top_level_statement'
    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/irb/ruby-lex.rb:232:in `catch'
    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/irb/ruby-lex.rb:232:in `each_top_level_statement'
    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/irb.rb:488:in `eval_input'
    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/irb.rb:397:in `block in start'
    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/irb.rb:396:in `catch'
    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/irb.rb:396:in `start'
    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.2/lib/rails/commands/console.rb:110:in `start'
    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.2/lib/rails/commands/console.rb:9:in `start'
    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.2/lib/rails/commands/commands_tasks.rb:68:in `console'
    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.2/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.2/lib/rails/commands.rb:17:in `<top (required)>'
    /app/bin/rails:4:in `require'
    /app/bin/rails:4:in `<main>'
irb(main):064:0>

Probably due to the way Hirb hard-enforces the hirb.yml.
My Hirb.yml file looks something like this:
:output:
  BlogEntry:
    :options:
      :fields:
        - id
        - title
        - url
        - blog_id
        - read_counter
        - description
        - content
        - created_at
        - updated_at

Could you make it not hard-enforce hirb.yml, in case one wants to use custom select statements?

Thanks for reporting your issue! This is one of my 4 active issues. Use that link to check how soon your issue will be answered. Don't forget to check your issue against this project's CONTRIBUTING.md. Cheers.

Hi. Configuring :fields is meant for required fields. Hirb doesn't have a notion of optional fields and I wouldn't want to make this default. The underlying helper, ObjectTable is pretty tiny. You can extend ObjectTable to support an optional fields mode or write your own helper that allows for optional fields and configure hirb to use it. Let me know if you'd like to extend ObjectTable and I can keep this open

I'm not advocating for optional fields, I'm simply suggesting that Hirb should suspend its required fields when the user is explicitly telling ActiveRecord what fields he wants to select. Otherwise, as it is now, it breaks user expectation of the standard ActiveRecord functionality.
What I'm suggesting is that Hirb will ignore requiring all the fields specified by default (in hirb.yml) when the user is using a select statement to explicitly specify the required fields. Otherwise, the table output can work as normal and print the columns in the nice table layout (while simply pertaining to only the fields/columns specified in the select statement).
Doesn't that make sense?

This is definitely an issue.  Hirb shouldn't require the regular attributes when using a select statement

Sorry Actually the problem stems from having a default scope in my case

+1

+1


I want someone to hack into my ex's instagram account let me know if you can do that

Her instagram username is Leah_Wherry and we recently broke up I wanna hack into her account so I could delete her photos of me and all her highlights about me.

LOL

Instead of hacking to do that, a person can  find a corrupt jew (such as zuck's-a-turd) or corrupt diversity hire from india at meta and make "an arrangement" with them to do that. Sounds easier in some ways.


[Translate] data_selector

@cojacoo, I have implemented a first draft, how mid-sized strings can be translated within the components. The solution is not perfect, but I tired to balance flexibility and usability as good as possible. Right now, the strings are defined in two dictionaries within the same file they are used, to keep some scoping to translations.
For the data selector find the english translation here:
https://github.com/hydrocode-de/RUINSapp/blob/d6b2581101b3c90266a01f0f0f5dfffa542e2524/ruins/components/data_select.py#L15
and the german translations here:
https://github.com/hydrocode-de/RUINSapp/blob/d6b2581101b3c90266a01f0f0f5dfffa542e2524/ruins/components/data_select.py#L23
you can open a pull request with the translations at your convenience. I will open new translation-issues on a per-file basis.

Nice. I will work on this when we have collected a bunch of descriptions... Meanwhile simply paste the lines from the existing version or put Blabla...


Library Stats wrapping

Describe the bug
30 Days & All Time info not enough space and wrapping (might happen on the others also, but don't have enough views)
Environment Details (please complete the following information):

Jellystat Version 1.1.1 (Latest unstable)
Jellyfin Version 10.9.11

To Reproduce
Steps to reproduce the behavior:

Click Library on the menu
Select TV Shows
Select Overview on the top

Screenshots

Also happens on the User Stats screen.
Select Users on the left and click on a specific user.


Update package version

4.0.2-alpha.1 (2024-01-31)
Bug Fixes

image-annotator-react: fix labelChange event trigger (0750c23)

:tada: This PR is included in version 1.0.2 :tada:
The release is available on npm package (@latest dist-tag)
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 4.0.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 4.0.2-alpha.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 4.1.0-online.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.2-alpha.1 :tada:
The release is available on npm package (@alpha dist-tag)
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.4.0-alpha.1 :tada:
The release is available on npm package (@alpha dist-tag)
Your semantic-release bot :package::rocket:


Chat - Area outside the group avatar is clickable

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Issue found when executing PR https://github.com/Expensify/App/pull/21402
Action Performed:

Go to staging.new.expensify.com
Create a group of five
Resize the conversation view to small screen
Tap outside the group avatar

Expected Result:
The area outside the group avatar is not clickable
Actual Result:
The area outside the group avatar is clickable
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[x] Android / Chrome
[ ] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: No
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/78819774/eb74761a-e16e-4241-ac8f-c7c3da50c9e5

Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

Proposal
Please re-state the problem that we are trying to solve in this issue.
The area outside the group avatar is clickable
What is the root cause of that problem?
There are actually two problems here,

We are using padding here, which expands the clickable area

https://github.com/Expensify/App/blob/60f48175c9e3342ef192d878218820e5ed5a76cd/src/pages/home/report/ReportActionItemCreated.js#L76
We are using left for positioning/shifting avatars but the PressableWithoutFeedback itself is not shifted, which causes it to be clickable in both the original and shifted positions.

https://github.com/Expensify/App/blob/60f48175c9e3342ef192d878218820e5ed5a76cd/src/styles/StyleUtils.js#L906

What changes do you think we should make in order to solve the problem?
Make individual avatars/row clickable.
Remove pressable from here
https://github.com/Expensify/App/blob/60f48175c9e3342ef192d878218820e5ed5a76cd/src/pages/home/report/ReportActionItemCreated.js#L74
Wrap this with PressableWithoutFeedback
https://github.com/Expensify/App/blob/60f48175c9e3342ef192d878218820e5ed5a76cd/src/components/MultipleAvatars.js#L157
or this
https://github.com/Expensify/App/blob/60f48175c9e3342ef192d878218820e5ed5a76cd/src/components/MultipleAvatars.js#L152
We add onPress prop in MultipleAvatars
What alternative solutions did you explore? (Optional)
Replace paddings with margins.
- style={[styles.ph5, styles.pb3, styles.alignSelfStart]}
+ style={[styles.mh5, styles.mb3, styles.alignSelfStart]}

Use margin-left instead of left for positioning the avatar.
- left: -(overlapSize * index)
+ marginLeft: index ? -overlapSize : 0

We also need to update(or remove) the width
https://github.com/Expensify/App/blob/60f48175c9e3342ef192d878218820e5ed5a76cd/src/components/MultipleAvatars.js#L138-L144
NOTE: In alternate solution this gap is still clickable.

Proposal
Please re-state the problem that we are trying to solve in this issue.
Chat - welcome area outside the group avatar is clickable
What is the root cause of that problem?
There are 2 root causes.

red space comes from wrong style in PressableWithoutFeedback of ReportActionItemCreated
green right space comes from wrong calculation of avatarContainerStyles width. It was old logic to treat count of avatars as 4 if more than 4 but after #15929, they're wrapped into 2 lines so count is now Math.ceil(icon length / 2). In above example, count is 3.

What changes do you think we should make in order to solve the problem?
Based on above analysis,

replace padding with margin
https://github.com/Expensify/App/blob/60f48175c9e3342ef192d878218820e5ed5a76cd/src/pages/home/report/ReportActionItemCreated.js#L76

After fix:

refactor width calculation logic: get max length of row

        const length = avatarRows.length > 1 ? Math.max(avatarRows[0].length, avatarRows[1].length) : avatarRows[0].length;
        const width = oneAvatarSize.width + overlapSize * 2 * (length - 1) + oneAvatarBorderWidth * (length * 2);

After fix:

Okay so everyone so far has pointed to this line as the culprit, but as far as I can tell that hasn't been updated in 6 months. What happened in this staging deploy that caused things to break since it's working properly on production?

Was it just something that was missed by this pr maybe? https://github.com/Expensify/App/pull/20512/files

@stitesExpensify it was missed by https://github.com/Expensify/App/issues/15929

In my proposal, first issue existed long time. 2nd issue was caused by https://github.com/Expensify/App/issues/15929

@stitesExpensify I think the width was set as a workaround for the issue described in my proposal (the 2nd issue)

We are using left for positioning/shifting avatars but the PressableWithoutFeedback itself is not shifted, which causes it to be clickable in both the original and shifted positions.

If we use margin-left instead, we can remove the width, which may prevent any future issues.

Hm okay. I think that your proposal makes sense @situchan. @puneetlath @WikusKriek what do you think since it looks like this PR is what caused the issue

@Christinadobrzyn FYI, I did the fix since it was a deploy blocker.
But I used @situchan's solution, so let's make sure they get paid out. That's why I added the external label. Thanks!

Invited @situchan to the Upwork job
Internal job: https://www.upwork.com/ab/applicants/1678527009111691264/job-details
External job posting: https://www.upwork.com/ab/applicants/1678527009111691264/job-details
Let me know if there's anyone else to pay!

PROPOSAL

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~015c5fa1a95af5c54d

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~015c5fa1a95af5c54d

Invited @situchan to the Upwork job
Internal job: https://www.upwork.com/ab/applicants/1678527009111691264/job-details External job posting: https://www.upwork.com/ab/applicants/1678527009111691264/job-details
Let me know if there's anyone else to pay!

would I get hired ?
Le mar. 11 juil. 2023 à 00:23, melvin-bot[bot] @.***> a
écrit :

✅ Contributor details stored successfully. Thank you for contributing to
Expensify!
—
Reply to this email directly, view it on GitHub
https://github.com/Expensify/App/issues/22445#issuecomment-1629862860,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARRHMI7SVDM72KCJTSEA543XPSFFTANCNFSM6AAAAAA2CH5VLM
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hi @stitesExpensify, @puneetlath and @Christinadobrzyn,
May I know why @situchan's proposal was selected over my proposal, as my proposal fixes the actual root cause of the issue, not fixing some workaround.
Also, @situchan's proposal is almost a duplicate of my proposal.

@DrLoopFall please check PR. It was already merged.
Calculating container width correctly is already existing logic and it's not a workaround, and not dupe of your proposal.
If you think this logic should be refactored, please feel free to raise discussion on slack.

@situchan, I didn't say your proposed login is a workaround, I said the solution you provided was fixing a workaround that was already there.

@stitesExpensify I think the width was set as a workaround for the issue described in my proposal (the 2nd issue)

We are using left for positioning/shifting avatars but the PressableWithoutFeedback itself is not shifted, which causes it to be clickable in both the original and shifted positions.

If we use margin-left instead, we can remove the width, which may prevent any future issues.

@DrLoopFall I didn't totally follow your proposal and since it was a deploy blocker, I went with @situchan's since I understood it. It's definitely possible that your solution is better.
It looks like the solution we implemented created a bug. Perhaps you can post your proposal on this issue and we can discuss further? https://github.com/Expensify/App/issues/22632

@puneetlath Thank you,
I've submitted a proposal there, as I already said using left was causing the problem, please have a look there.

Paid ✔


Backport: logging to elastic search uses TLSv1

Backport https://github.com/rancher/rancher/issues/16042

rancher/rancher:v2.1.2-rc3

Created Rancher server & cluster
Setup external ElasticSearch
Enabled ES logging target w/ https endpoint, selecting TLSv1.2
Saw logs being transported to ES
Checked logs for TLS handshake and saw correct version


WIP Vm termination change

For review.
Changing termination toggle for azure autoscale
resolve: #65

the check failures were due to package vulnerability on ansi-regex which is widely used in multiple dependency. "some vulnerabilities required manual review and could not be updated" so we bypass the npm audit check for our code this time.

@fshuva please confirm that https://github.com/fortinet/fortigate-autoscale-azure/pull/74/commits/66615f73e6b04a8a745bb6c8de5d689c1e2005da is working as expected so I can create a new release for the core


double-beep: Blacklist strikingly.com

double-beep requests the blacklist of the website strikingly\.com. See the MS search here and the Stack Exchange search here.

strikingly\.com has been seen in 52 true positives, 0 false positives, and 0 NAAs.

This should probably have been a proper PR because it required unwatching a couple of subdomains. I did that manually so this can be merged now.

Approved by tripleee in Charcoal HQ


Setting the node border width to zero doesn't result in a zero width border.

I tried to set the border width of a node to zero but the setting it is ignored and the border still has a non-zero width.
import SBMLDiagrams
import tellurium as te
r = te.loada ('''
species A
''')
la  = SBMLDiagrams.load (r.getSBML())
la.setNodeBorderWidth('A', 0)
la.draw(setImageSize=[100,100])

fixed.


fix japanese translate

I feel that "リロード" is more appropriate than "リフレッシュ", but I have left it as is to allow for the possibility that the reload button is labeled リフレッシュ.

I have changed リフレッシュ to リロード on store branch(1.4.2 on AppStore). New labels will add after merge into main branch from store branch. If possible, please check it again later. I will tell you when I submit the PR.

ok. ty


Don't create tag automatically on bumping version number

I need to make the version number change in a PR, but I'd like the tag to point to the merge commit when I merge the PR, so I'll make it manually.

I like doing this automatically post PyPI release: https://github.com/ansible/awx-plugins/blob/e613d5a/.github/workflows/ci-cd.yml#L828-L923. Since it's the point of no return that the tag wouldn't be deleted if upload happened.


Added SIGTERM and SIGINT handling

This should resolve #25. Might need some more improvements though 😛

Hi @tk-nguyen. Thanks for the PR! This looks OK, but I just discovered this crate: https://crates.io/crates/tokio-graceful-shutdown together with https://docs.rs/axum-server/latest/axum_server/struct.Handle.html#method.graceful_shutdown would even be a nicer solution I think. I'll try to make a proposal today. It would be great if you could take a look at it then and verify whether it also solves #25

This should be fixed with https://github.com/tweedegolf/mailcrab/pull/29 - any feedback is appreciated!


Added posibility to skip toJSON and then filter objects by user own function

When working with Sequelize i created model instance method item.url() and want to use it inside Jade code, also mixed with providing Promise to render method, so i could't use skipTraverse.
I had added two optional functions
app.use(require('express-promise')({
    disableJSONify: function (object) {
        return true; //You can add more logic here if you want to select which page would passed without toJSON call
    },
    objectFilter: function (object) {
        if (object && object.model) //Example for Sequelize, will skip object if it was ORM model
            return true;
        return false;
    }
}));

Also skipTraverse not working for ORM models....


Fixed controllers scaffolding

@bmourat,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by Microsoft. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot


Run IONIC 1 - Project with IONIC-CLI 2

How can i run IONIC 1 - Project with IONIC-CLI 2..., when i do:
ionic serve
i get this error:
WARN: ionic.project has been renamed to ionic.config.json, please rename it.

TypeError: Cannot read property 'hasOwnProperty' of undefined
    at Object.runr (/usr/local/lib/node_modules/ionic/lib/cli.js:191:19)
    at /usr/local/lib/node_modules/ionic/lib/cli.js:54:9
    at _fulfilled (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:787:54)
    at self.promiseDispatch.done (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:816:30)
    at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:749:13)
    at /usr/local/lib/node_modules/ionic/node_modules/q/q.js:557:44
    at flush (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:108:17)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)

Cannot read property 'hasOwnProperty' of undefined (CLI v2.1.7)

Your system information:

Cordova CLI: 6.3.1
Ionic CLI Version: 2.1.7
Ionic App Lib Version: 2.1.4
ios-deploy version: 1.9.0
ios-sim version: 5.0.8
OS: macOS Sierra
Node Version: v6.9.1
Xcode version: Xcode 8.1 Build version 8B62

i do but don't resolve
npm install
Thanks

2.1.7 unstable. reinstalling ionic 2.0.0:

npm uninstall -g ionic
npm install -g<EMAIL_ADDRESS>

➜  ionic-quickstarter git:(master) ✗ ionic info
Your system information:
Cordova CLI: 6.4.0
Gulp version:  CLI version 3.9.1
Gulp local:   Local version 3.9.1
Ionic CLI Version: 2.0.0
Ionic App Lib Version: 2.0.0
ios-deploy version: 1.9.0
ios-sim version: 5.0.11
OS: Mac OS X El Capitan
Node Version: v6.9.1
Xcode version: Xcode 8.1 Build version 8T29o

i do this and work, but with i works with ionic 2 can i use thins like generate?
using the 2.0 version ?
Thanks

No Problems！😄

Thanks, work's fine.


New annotations and cache extensions

Fixed build errors
OrmAnnotationsExtension contains only orm specific code and expect an generic annotations integration to be used (nettrine/annotations)
OrmCacheExtension

by default uses autowired cache (may be nettrine/cache)
defaultDriver service is used for all *Cache options which are not explicitly configured instead of copying it's config for separate services
uses flexible services configuration provided by contributte/di
secondLevelCache is properly configured (it works differently than other cache options)
fixed resultCache explicit configuration (it referenced hydrationCache service)
driver cannot be referenced by name (apc, apcu, array, ...) anymore, only valid service definitions (@nettrine.cache.driver, Doctrine\Common\Cache\ApcuCache(), ...) are possible

TODOs

stable version of nettrine/annotations and nettrine/cache
should secondLevelCache allow specifying of both Cache and CacheConfiguration? - imho no as we cannot be always sure which one is configured - config structure would need changes

Imho also closes #60 as there are no more limitations for cache configuration


IotEdge Agent not able to deploy specified module 'Error calling Create module iot-edge-opc-publisher: Container runtime error'

I declared the iot-edge-opc-publisher module just like declared in the tutorial, but when the agent on the edge device tries to deploy the module. the agent gets a exception.

I declared the module via the 'Set Modules' in the IoT Hub for this specific edge device and the edge device is a azure windows 10 virtual machine.
This were my container creation options ...

... first and then tried exactly yours from the instructions, neither did work.

I have updated the documentation for use with the GA version of IoT Edge a few weeks ago. Can you please retry with those?

I am facing same issue while deploying OPC publisher as module in azure IOT edge. Is there any solution for this?


Context matches v1 type.

In clowder v1 context was a list that consisted in URL and dictionary. This pull request makes v2 match v1. Front end and back end have both been changed. Extractor registration should work correctly.
If testing, make sure to remove old metadata/listeners from DB, or else conflicts will happen.

Can you fix the linting?

To test with extractors, use this branch of pyclowder:
https://github.com/clowder-framework/pyclowder/pull/60
Wordcount and other sample extractors there can be used.

For the errors in pytest. These are happening when metadata with no context_url is being posted to the backend for files and datasets. The field is an optional[str] but the validator looks like it throws an error if it is missing. Not sure what to do to fix it. Also that the changes made in this PR shouldn't affect that.

@ddey2 I pushed a small change that might fix the errors you are seeing.


Add Near Future Launch Vehicles from SpaceDock

This pull request was automatically generated by SpaceDock on behalf of Nertea, to add Near Future Launch Vehicles to CKAN.
Mod details:
name = /mod/1434/Near%20Future%20Launch%20Vehicles
author = Nertea
abstract = Super-heavy lifter parts
license = CC-BY-NC-SA 4.0, except for art assets as ARR
Homepage = http://forum.kerbalspaceprogram.com/index.php?/topic/155465-130-near-future-technologies-june-30/
description = NF Launch Vehicles is designed to offer better, larger options for getting your stuff into into space. To that end, you get a lot of new toys.

5m size parts, based on an eclectic set of concepts including but not limited to the Russian Energia and the Blue Origin New Glenn.  You'll get a full set of fuel tanks, adapters and clustering tools, plus the usual decouplers, fairings and drone cores.
Kerbalizations of the SpaceX Raptor, Raptor Vacuum, Blue Origin BE4, and NASA/AR RS-18. These methalox engines push the boundaries of LF/O engines and are meant as late-game upgrades to your rocket arsenal. No new fuels! They're all surface-attachable and designed for clustering.
More support parts, like a heavy radial decoupler, specialized aerodynamics control thrusters, several heavy RCS blocks, and a new model of RCS based on the ULA IVF concept, which works as a combined fuel cell, battery and RCS.

Of course, everything plays great with NFT, Kerbal Atomics and CryoEngines. I wouldn't have it any other way.
Album of screenshots
Please direct questions about this pull request to Nertea.

I did some changes and will fix whatever the bot throws out. I'm guessing this should have a bunch of suggests and supports also but I'm not quite sure which ones.
I recall that long ago @lOmicronl helped with these but I have no idea if they do any longer since... well it's been a while.
I left the singular patch in the Patches folder as is since it's a MM file for CTT and afaik we usually leave those in, or atleast did way back when I last contributed.

I did some changes and will fix whatever the bot throws out. I'm guessing this should have a bunch of suggests and supports also but I'm not quite sure which ones.

Personally, I prefer to keep these things to the minimum. For example, I've taken to always installing mods with --no-recommends since I think we're way too permissive with which optional dependencies should be installed by default.
In this case I'd probably follow the lead of the other NFT mods and make CommunityTechTree and Nertea's other mods suggests.

I left the singular patch in the Patches folder as is since it's a MM file for CTT and afaik we usually leave those in, or atleast did way back when I last contributed.

If the patch doesn't do anything if CTT isn't installed, it's fine to leave it there.

EDIT: I didn't do a $vref, should I?

Sure, it provides more versioning information than SpaceDock does.

EDIT2: I choose restricted license since parts of the pack (artassets) are ARR and afaik we always pick the most restrictive license and that part of the CKAN-spec doesn't seem to have changed (I checked). I saw we can add a list of licenses but I think that's only for when the user can choose a license rather for when different assets have difference licenses?

This is correct. Multiple licenses means the user can choosewhich license to use it under. We do not yet have a specification for specifying exactly which files are under which license.

Looking at some other Nertea mods it seems CTT as a recommends is something of a standard so I'm keeping that. The forumthread mentions Kerbal Atomics and CryoEngines by name while only making a sweeping mention of the entire NFT modpack so I added the former as suggests.
Hopefully this'll do :)

LGTM


fix typo in README

Hello @yuki24, thank you for great gem!
I found some typo in readme, so please check :)

Thanks!


Resolves #79

Refactors ElloKeychain.swift to allow resetting, and adds specs.

Looks good. I think we'll want a decent amount of manual testing. Logging in, out, etc. 👍


⚠ Processors has degraded performance

In d14ade8, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 89 ms

Resolved: Processors performance has improved in 4b43a2e.


JSON Query to graphql/query: HTTP error code 502.

Just hit that error from branch v3-dev (while doing my regular daily downloads)
[790] #starwarscosplay #starwarscosplay/its.just.a_spark_2017-08-08_17-51-47.jpg [My almost finished mando twi'…]
JSON Query to graphql/query: HTTP error code 502. [retrying]
Traceback (most recent call last):
  File "c:\python\scripts\instaloader-script.py", line 11, in <module>
    load_entry_point('instaloader==3.0rc0', 'console_scripts', 'instaloader')()
  File "c:\python\lib\site-packages\instaloader.py", line 1224, in main
    args.profile_pic_only, args.fast_update, args.stories, args.stories_only)
  File "c:\python\lib\site-packages\instaloader.py", line 1039, in main
    self.download_hashtag(hashtag=pentry[1:], max_count=max_count, fast_update=fast_update)
  File "c:\python\lib\site-packages\instaloader.py", line 852, in download_hashtag
    for post in self.get_hashtag_posts(hashtag):
  File "c:\python\lib\site-packages\instaloader.py", line 834, in get_hashtag_posts
    lambda d: d['data']['hashtag']['edge_hashtag_to_media'])
  File "c:\python\lib\site-packages\instaloader.py", line 340, in graphql_node_list
    edge_struct = edge_extractor(data)
  File "c:\python\lib\site-packages\instaloader.py", line 834, in <lambda>
    lambda d: d['data']['hashtag']['edge_hashtag_to_media'])
TypeError: 'NoneType' object is not subscriptable

Thanks for testing our v3-dev branch and reporting this! Commit 5732948 changes Instaloader's behavior such that this kind of error should be handled differently. Instead of failing and aborting, a error message is printed and Instaloader goes on to the next node to download.
However, I am curious which error message would occur now. I somehow feel this is related to the rate limit issues, #26 and #29.


[SMALLFIX] Java 8 migration: replace anonymous type with lambda in alluxio.web.UIFileInfo#PATH_STRING_COMPARE

Jenkins, test this please

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/724/
Test FAILed.

Jenkins, test this please

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/725/
Test FAILed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/726/
Test FAILed.

Jenkins, test this please

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/733/
Test FAILed.

Jenkins, test this please

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/735/
Test FAILed.

Merged build finished. Test FAILed.

Jenkins, test this please

Jenkins, test this please

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/739/
Test FAILed.

Jenkins, test this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/740/
Test PASSed.

MoxinC wants to merge into Alluxio:master from MoxinC:smallfix

MoxinC wants to merge into Alluxio:master from MoxinC:smallfix

@apc999

@apc999 PTAL, thanks

LGTM


Downgrade to v0.11 in order to properly upgrade without losing data.

One of our servers was patched with kernel updates today, now influx won't start.
run: create server: detected /var/lib/influxdb/meta/raft.db. To proceed, you'll need to either 1) downgrade to v0.11.x, export your metadata, upgrade to the current version again, and then import the metadata or 2) delete the file, which will effectively reset your database. For more assistance with the upgrade, see: https://docs.influxdata.com/influxdb/v0.12/administration/upgrading/
I can't find any instructions on how to downgrade.
Why not keep the previous versions in your repo if you aren't going to auto-upgrade between versions?
The real problem here is: please don't kill people's systems, just upgrade it for them.

In case anyone has the same trouble I did:
wget https://s3.amazonaws.com/influxdb/influxdb_0.11.1-1_amd64.deb
dpkg -i ./influxdb_0.11.1-1_amd64.deb

For the sake of completeness. The process was ridiculously simple once I figured it out. The documentation doesn't show much or explain it very well.
wget https://s3.amazonaws.com/influxdb/influxdb_0.11.1-1_amd64.deb
dpkg -i ./influxdb_0.11.1-1_amd64.deb

Next, start influx v0.11

service influx start

Check the log to be sure it is running:
tail /var/log/influxdb/influxd.log

Now back up the metadata - all you need is the meta, not the actual database:
influxd  backup /tmp/influx_meta_backup

Next, install v0.12:
wget https://s3.amazonaws.com/influxdb/influxdb_0.12.1-1_amd64.deb

And install:
dpkg -i ./influxdb_0.12.1-1_amd64.deb

Then restore the metadata:
influxd restore -metadir /var/lib/influxdb/meta  /tmp/influx_meta_backup

Start influx:
service influxdb start

Why wouldn't the upgrade script just do this automatically?

Thank you, I hope that the maintainer includes those steps in the upgrade script in the future.

@claytondukes thanks for writing this up. i'll leave this open for the moment, but will update the docs to clarify all the steps you outlined and close it out once that's done.

@toddboom, I had to update another system today and noticed I left out a step service influxdb stop after backing up from the old version.

Thank you @claytondukes for the instructions. However I am stuck with back up because I have created Influx 0.11 setup with a custom config which used a non default path for the DB storage. Now only way to provide that info to Influxd process is via -config option, but backup command along with -config is not working.

Never mind, I have to run two instances, one with influx.exe -conf <config name>, in a separate terminal run influx.exe backup <path>, it worked.


unifi update is stuck

Please verify that you have read and understood the guidelines.
yes
A clear and concise description of the issue.
After running the update-command on the unifi-LXC, the script is stuck on "updating" After 20 minutes or so, I rebooted the lxc, after which the update command gave error " line 62: exit code 0: while executing command apt-get install -y unifi &> /dev/null".
I have restored the lxc, tried again, and problem remains.
What settings are you currently utilizing?

[X] Default Settings
[ ] Advanced Settings

Which Linux distribution are you employing?
Debian 12
If relevant, including screenshots or a code block can be helpful in clarifying the issue.
No response
Please provide detailed steps to reproduce the issue.
connect to the console of the lxc and type "update"

When did you install the script?
Which mongodb version is installed (run apt show mongodb-org)?
What happens if you run update commands manually?
apt-get update --allow-releaseinfo-change
apt-get install -y unifi

The default script update worked for me. Patience is key as it was a large update in my case.

4 hours in and nothing changed :)
Fortunately, the advice from @havardthom was money ;)  Installing manually went just fine.  Thanks for the support guys.


fix: calculation and pay subsidies would not reset if changed on edit (hl-1110, hl-1127, hl-1130)

Description :sparkles:
Fix an issue with calculation and pay subsidies showing wrong if any of these change:

Pay subsidy type
Apprenticeship yes/no

Also sets new expense information (salary, vacation expenses, other expenses) as calculation defaults.

API branch is deployed to platta: https://helsinkilisa-pr2847.api.dev.hel.ninja/healthz :rocket::rocket::rocket:

APPLICANT branch is deployed to platta: https://helsinkilisa-ui-pr2847.dev.hel.ninja :rocket::rocket::rocket:

HANDLER branch is deployed to platta: https://helsinkilisa-ui-handler-pr2847.dev.hel.ninja :rocket::rocket::rocket:

TestCafe result is success for https://helsinkilisa-ui-handler-pr2847.dev.hel.ninja :laughing::tada::tada::tada:


Cannot go to definition of variables

If you define a top-level variable, you should be able to use Ctrl+, to find and navigate to it.
Currently, only lists/dicts/etc. appear in the list, and selecting them does not navigate to the definition.

how can i fix that?temporary solution？

There's no temporary solution, I'm afraid. It's down to how we represent variables in our code model, which currently just doesn't include the concept of a "definition".


DBZ-6824 trim default value for the BIGINT and SMALLINT types when parsing MySQL DDL

Fix DBZ-6824.

@ruanhang1993 Thanks for the PR, I left a recommendation for a small change reducing code duplication.

Applied to main (=2.4) and branch 2.3.


better action description and step names

Motivation
This was missing from the last PR, sorry. Improved Action title name and steps description.
We're now able to see from the summary pop-up window which pipeline failed/passed.
How to test the behavior?
Look at the Github actions shortcut icon.
Checklist

[x] Have you checked our Contributing document?
[x] Have you ensured the PR description clearly describes the problem and solutions?
[x] Is your contribution compliant with our coding style? Read about PEP8 and black.
[x] Have you checked to ensure that there aren't other open or previously closed Pull Requests for the same change?
[x] Have you included the relevant issue number using #XXX notation where XXX is the issue number?

The change that fixes the testing will come from here: https://github.com/catalystneuro/nwb-conversion-tools/pull/215

@luiztauffer Test runs agree with master now. Merging this small name change!


Is it possible to cargo install --bin?

Example:
$ mise exec cargo:solana-labs/solana@tag:v1.18.26 -- solana-keygen

Errors with:

error: multiple packages with binaries found: gen-headers, gen-syscall-list, proto, rbpf-cli, solana-accounts-bench, solana-accounts-cluster-bench, solana-banking-bench, solana-bench-streamer, solana-bench-tps, solana-cargo-build-bpf, solana-cargo-build-sbf, solana-cargo-registry, solana-cargo-test-bpf, solana-cargo-test-sbf, solana-cli, solana-dos, solana-faucet, solana-genesis, solana-gossip, solana-install, solana-keygen, solana-ledger-tool, solana-log-analyzer, solana-merkle-root-bench, solana-net-shaper, solana-net-utils, solana-poh-bench, solana-remote-wallet, solana-stake-accounts, solana-store-tool, solana-tokens, solana-transaction-dos, solana-upload-perf, solana-validator, solana-watchtower, solana-zk-keygen. When installing a git repository, cargo will always search the entire repo for any Cargo.toml.

How can I specify that I want to install solana-keygen specifically?

this could be added as a tool option in the cargo backend


feat(client): adapt OpenAPI createStorageConfig

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

3 of 12 (25.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.1%) to 86.599%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

tensorbay/client/gas.py
3
12
25.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.1%

Covered Lines:
6081

Relevant Lines:
7022

💛  - Coveralls


Deployed application running failed since some changes of firebase database api?

When I followed your steps and deploy the application in the firebase, it gives me the message like this:
@firebase/database: FIREBASE FATAL ERROR: Cannot parse Firebase url.

I got this error
Error: It looks like you haven't created a Realtime Database instance in this project before. Please run firebase init database to create your default Realtime Database instance.

@dqisme did you remplace YOUR FIREBASE with your firebase instance name?

@proppy There is no app configuration anywhere in the repo and certainly no place where a <YOUR FIREBASE> should be replaced with anything. It is not mentioned in the step-by-step tutorial.

try upgrade SDK_VERSION from 7.13.1 to 8.10.1
in  /washer-start/public/index.html
works for me.
  <script src="/__/firebase/8.10.1/firebase-app.js"></script>
  <script src="/__/firebase/8.10.1/firebase-auth.js"></script>
  <script src="/__/firebase/8.10.1/firebase-database.js"></script>
  <script src="/__/firebase/init.js"></script>

This issue is unreproducible now, so I will close out the issue, please feel free to open if needed.


please add reward model eval scripts

Describe the feature
@ht-zhou  I notice RM training and training result  is updated,  can you share the eval data and scripts?
what' more, I think you cite the wrong paper, It should be https://arxiv.org/pdf/2204.05862.pdf

hi, @akk-123, thanks for your suggestion, and the paper link has been updated.


[WIP] Send alerts and notifications to Microsoft Teams

What is this?
This optional feature is aiming to close the feedback loop via social channels. When a billing alert is raised, or when a CodeBuild projects fails for some reason, the information is pushed to a channel with multiple eyes.
Why is it important?
Currently SPA distributes alerts and notifications over e-mail. While mailing lists can be helpful, they have proven less reactive than social exposure. For example, if a team member goes beyond his budget, he can neglect proper handling of the billing alert in his inbox. But if the same alert is exposed on a social channel, then the person will receive encouragements from the entire team to fix the issue.
How is this implemented?

[ ] add pymsteams package as a project dependence
[ ] accept webhook parameter in settings file
[ ] pass webhook to Lambda functions as an environment variable
[ ] expand OnAlert Lambda function to push messages to webhooks

hello Bertrand, yes you are right, Slack is a popular chat solution in the enterprise. For the time being, my immediate need is on Microsoft Teams so this feature development is on it. Of course, anyone is entitled to add Slack support separately. Thanks for sharing your thoughts.

With 88d4d5fb444188a6fc8a14b7a2046072e01aae2a the packaging of lambda code has been extended for external dependencies like pymsteams

Several weeks after deployment of the solution, the Reply team has successfully generated multiple alerts that have been published in our internal Microsoft Teams channels. This is working great!


What to do with Dictionary

I'm not a fan of the current Dictionary implementation mainly because of:
(1) It's not idiomatic, in Kotlin parlance Dictionary is essentially a MutableMap<Any, Any>.
(2) Written code is long as it enumerate all possible combinations of valid key/value types.
Although, it has some clear advantage: It's impossible to pass in invalid types as keys and values.
Criteria
The next section list down several Dictionary implementations, sighting how it compares to a kotlin.MutableMap - specifically in the following key areas:

Setting a value
Getting a value
Iteration.

Additionally, it will also compare the implementation to how a Dictionary is used in GDScript.
Implementations
[1] Using Variant and specialized methods  (current)
class Dictionary : Iterable<Map.Entry<Variant, Variant>> {
    fun set(key: Long, value: Long)
    fun set(key: Long, value: Double)
    // and so on
    fun set(key: String, value: Long)
    fun set(key: String, value: Double)
    // and so on

    fun get(key: Long): Variant
    fun get(key: String): Variant
    // and so on
}

The idea behind this implementation is to prevent the user from passing on a wrong value type to the Dictionary by providing specialized methods that only accept the correct value types. wrong value types are either types that can't be converted to a  Variant or types that when passed to a Variant losses it's type identity - an example of this are the Int and Float types as Variant only work with the mentioned type's wider cousins: Long and Double, respectively. When creating a Variant from an Int, the value will be converted to a Long first before storing it - so when unwrapping the value from the Variant it's impossible to know if the initial value passed to it was an Int or a Long.
Setting a value
dic[1L] = 2L
dic["hello"] = 0.5
dic[1] = "hi" // does not compile, key here is an Int
dic["foo"] = 0.1f // does not compile, value here is a Float
dic[SomeKotlinClass()] = 2L // does not compile as SomeKotlinClass is not Variant compatible

In this area, setting a value is similar with kotlin.MutableMap.
Getting a value
dic["hello"].asString() // returns a variant, use asXXX to convert it to the expected type
dic.get("hello", 1L) // returns a Long value with a default of 1L if not present

In a way the second line is similar to how a kotlin.MutableMap works, however in the first line you to deal with a Variant first then convert it to the expected type.
Iteration
dic.forEach { (keyAsVariant, valueAsVariant) ->
	// do something here
}

for ((keyAsVariant, valueAsVariant) in dic) {
    // do something here
}

It is almost similar to kotlin.MutableMap however the biggest downside is you have to deal with Variants.
GDScript comparison
dic[1] = 2
dic["hello"] = 0.5
dic[1] = "hi"
dic["foo"] = 0.1

print(dic["Hello"]) // no explicit Variant conversion.

Everything is a Variant in GDScript, but the type itself is not exposed to users - but they are automatically converted. The problems with Int and Float is not present here because GDScript is using Long and Double for natural and real  numbers, respectively. If you think about it a Variant in Kotlin parlance is Any, while in C# it is an object.
[2] Dictionary extending AbstractMutableMap<Any, Any>
class Dictionary : AbstractMutableMap<Any, Any>() {
    // ...
}

This is inspired by Godot C#, essentially Dictionary is a IMap<object, object>. The idea behind this implementation is to make usage of Dictionary idiomatic in Kotlin but retains its behaviour in GDScript (i.e, You can assign any key and value - as long as they are Variant compatible). A big bonus we get here is that we can use all the API defined for kotlin.MutableMap.
Setting a value
dic[1L] = 2L
dic["hello"] = 0.5
dic[1] = "hi" // compiles but the type of they key when queried will be a Long (1)
dic["foo"] = 0.1f // compiles but the type of the value when queried will be a Double (2)
dic[SomeKotlinClass()] = 2L // compiles but fails at runtime because SomeKotlinClass is not Variant compatible (3)

In a way it's similar to the first implementation except for the last three lines: (1) and (2) will lose the type information of it's key and value, respectively - but alternatively we can change the behaviour to throw an exception at runtime  in a fail-fast manner. Failing fast here means the user can pick up the mistake during development instead of discovering it after the code has been shipped.
Getting a value
dic["hello"] as String // explicit casting to a String
dic.getOrDefault("Hello", 0) // returns an Int, via implicit casting.

Since values are Any, we have to cast to the appropriate type. This is similar to the first implementation, but doesn't use a Variant which in my honest opinion - shouldn't be used by users (It's not exposed in GDScript and C# - why should we? In C# it is only used to namespace: Variant.Type and Variant.OP: https://godotsharp.net/api/3.1.0/Godot.Variant/)
Iteration
dic.forEach { (keyAsAny, valueAsAny) ->
	// do something here
}

for ((keyAsAny, valueAsAny) in dic) {
    // do something here
}

Again, similar to the first implementation but not using Variant.
GDScript Comparison
This has a lot of similarity with GDScript, specifically setting a value. The difference lies in retrieving the value, you have to cast to the expected type in Kotlin due to it being statically typed. Ignoring the difference in typing nature of Kotlin and GDScript, this implementation is equal to the GDScript one.
[3] Typed Dictionary
class Dictionary<K: Any, V: Any> : AbstractMutableMap<K, V>() {
    // ...
}

This approach is a specialization of the second implementation where we allow users to specify more information about the types of its keys and values. This is the most idiomatic compared to the two previous implementation, essentially what you have here is a kotlin.MutableMap with a different name. One of the downside of this approach is that it's impossible to prevent users from using types that are not Variant compatible (i.e.Dictionary<Throwable, SomeKotlinClass>).
Setting a value
val dic: Dictionary<String, Int> = ...
dic["Hello"] = 12
dic["Foo"] = true // does not compile, dic can only store Ints values
dic[1] = 12 // does not compile, dic can only use String keys

val dic: Dictionary<Any, Any> = ...
dic["Foo"] = true // works!
dic[1] = 12 // works!

This approach allows you to restrict the type you can pass as its keys and values. If you want a Dictionary which behaves similarly in GDScript, then you can declare it as Dictionary<Any, Any>.
Getting a value
val dic: Dictionary<String, Int> = ...
var a = dic["Hello"] + 1 // works!

This is the area where this approach shines, you don't have to do any explicit casting to the expected type unless you declared it as Dictionary<Any, Any>.
Iteration
val dic: Dictionary<String, Int> = ...
dic.forEach { (key, value) ->
	// do something here
}

for ((key, value) in dic) {
    // do something here
}

As mentioned in the previous section, this approach shines in reads - no more explicit casting to the expected type.
GDScript Comparison
This is very different to GDScript but it is more idiomatic in Kotlin. It is hard to compare how reads are done in both languages due to the difference in typing.

I personally prefer [2], [3] is nice and is very Kotlin-esque but it hides the original behaviour of a a GDScript Dictionary (which is essentialy a MutableMap<Any, Any>).

My 4th implementation with a dirty trick but that will allow us to freely use Int/Float (not like implem 2/3)
class <K: Any, V: Any> Dictionary internal constructor(keyClass: Class<K>, valueClass<V> : AbstractMutableMap<K, V>() {}

fun <reified K: Any, refied V: Any> Dictionary() : {
      isValidGodotType<K>() // will throw an error if invalid type
      isValidGodotType<V>()  // will throw an error if invalid type
      Dictionary(K.class, V.class)
}

With that method, we also keep the original type of the variable. We don't even need to query the type of Variant with a C call to Godot and can properly cast the Double/Long in the underlying Variant to their original Float/Int types.
Other than that, it's pretty much the same as [3] but with more safety.

Personnally I prefer 3 over 2 (even if 2 seems good too).
I agree with ranie that we should not expose Variant and Dictionary should be a MutableMap<Any, Any>
I also like @CedNaru hack. But only one question:
We cannot use constructor of Dictionary and check for validity in init block ?

No, we can't.
To check the class we need a reified T, that's why I'm using a fake constructor because there is no class level reified type.

So the solution that we came up in discord is:
class <K: Any, V: Any> Dictionary internal constructor(keyClass: Class<K>, valueClass<V>) : MutableMap<K, V> {}

fun <reified K: Any, refied V: Any> Dictionary() : Dictionary<K, V> {
      isValidGodotType<K>() // will throw an error if invalid type, unless its Any
      isValidGodotType<V>()  // will throw an error if invalid type, unless its Any
      return Dictionary(K.class, V.class)

Which is a good compromise between [2] and [3]. To represent a true GDScript dictionary you can declare Dictionary<Any, Any>, note that there are caveats when using this, mainly:

When passing in a Int/Float, the value you get back is a Long/Double, respectively.


Fix qiskit/init.py linting

The style target is failing is failing for qiskit/__init__.py due to the recent changes in #349:
qiskit/__init__.py:28:1: E402 module level import not at top of file
qiskit/__init__.py:31:1: E402 module level import not at top of file
...

It is not being marked as a failure on the travis build due to a bug that will be fixed on the next travis-related PR, but in the meantime, can we make sure both targets pass? As specified by the contributing guide, we enforce PEP8 conformant code.
Pinging explicitly @nonhermitian and @ajavadia in the hopes of a quick fix, as otherwise the style target will result in an error for the rest of the ongoing PRs and contributors. At a first glance, it seems to be caused by the explicit Python version check that early on the file - which seems conceptually fine, but since it's a bit redundant (we declare the supported Python versions on the setup.py classifiers, the documentation, etc), perhaps moving the check inside _util or similar would do the trick?

The motivation for this was the removal of the asserts in the tutorials that do the Python version check without losing the safety check.  It was also suggested to move the other checks there as well.  The PEP8 you cite is well known your being a bit too restrictive, and many packages do version and dependency checks before module import.  However, I am not opposed to revertting the whole Pull if people are bothered.

Yes, having some safety checks doesn't hurt at all - it's not about reverting the contribution, the issue is that in the current state, the style is not consistent with the project guidelines (and in practice makes the make style result in failures in the rest of the open contributions).
What about moving the version check and probably also the call to _check_ibmqe_version() from qiskit/__init__.py to qiskit/_util.py directly, keeping the _util import as the first one and "conceptually" expanding it into the version/dependency checker piece within the SDK? This way we can keep being PEP8 conformant, and also have the checks in place.

@diego-plan9 I thought that including pylint: disable=wrong-import-position would silence this warning. And I thought this is fine to add since the qiskit/__init__.py file already had pylint: disable=wrong-import-order in it.
Did that not make the style errors go away? If not, we can do as you suggest.

@ajavadia That line does disable specific linter warnings for that file (which is fine to bypass with both the old wrong-import-order and wrong-import-position directives -  we actually need to be able to have the imports in non-standard order due to the way we implement the gates at the moment and its dynamic nature), yes! It makes make lint happy, but unfortunately the changes on the mentioned PR make the code non PEP8 conformant, which is enforced by the make style target.
Can you or @nonhermitian take a look at it? As mentioned, it is causing other open contributions to exhibit errors, and it's also blocking the upcoming PR for tweaks to travis which need to be in place before the release (that, among other things, will make sure that make style is handled properly in the CI).

@diego-plan9 done.

Fixed by #355


[Event Request] Table 37 Sales Line - function OnBeforeAutoReserve

Dear,
I request for below Amendment for function OnBeforeAutoReserve
Definition of Integration as below
Make SalesLine Parameter as VAR.
thanks & regards
Ashwini Tripathi

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


dart too slow

i use dart for train, but it's too slow, time used about ten times more than base gbtree

With tree dropout, the existing prediction buffering mechanism cannot be used. So, the more iterations you run, the slower becomes prediction.

We might be able to enable buffer in Pred and update buffer in CommitModel.

so we should only optimize predict function?
@khotilov, just as you say, when run using 1000 rounds, the more iterations the slower. when about 300 rounds, it costs 3min each round and i have to stop the train

@marugari can you give some advice? thanks.

DART booster does not support buffer due to change of dropped trees' leaf scores, so booster must follow the path of all existing trees even though dropped trees are relatively few.
If we could use the existing prediction buffering mechanism in Pred and update buffer with change of leaf scores in CommitModel, DART booster could skip following the path of trees and be speeded up.


WIP: Bazaar installed extensions

Pull Request summary

[x] Adds ability for Bazaar to send package.lock to flagrow.io.
[ ] Ability to deliver package.lock on request from flagrow.io based on sync frequency

Checklist

[ ] New code is covered by tests
[ ] Extension installation works
[ ] Extension update works
[ ] Extension uninstallation works

Codecov Report

Merging #77 into master will decrease coverage by 0.26%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master      #77      +/-   ##
==========================================
- Coverage   28.87%   28.61%   -0.27%
==========================================
  Files          43       44       +1
  Lines        1070     1080      +10
==========================================
  Hits          309      309
- Misses        761      771      +10

Impacted Files
Coverage Δ

src/Listeners/AddApiControllers.php
0% <0%> (ø)
:arrow_up:

src/Listeners/BazaarEnabled.php
0% <0%> (ø)
:arrow_up:

...Api/Controllers/RetrieveComposerLockController.php
0% <0%> (ø)

src/Listeners/AddApiAttributes.php
0% <0%> (ø)
:arrow_up:

src/Repositories/ExtensionRepository.php
0% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

We've decided on the following process:

[ ] User can enable sync, drop the interval
[ ] Whenever sync is enabled and user modifies lock via bazaar we will send an API request to flagrow.io with the specific changes, not the whole lock
[ ] In addition we will sync the lock daily, this logic already exists, we just have to rename the logic on flagrow.io side to drop interval
[ ] if syncing the lock daily fails we will send out a mail to the user

[ ] whenever a new version of a package is released we will send a mail to all users with a bazaar that have that extension


Build failure: undefined basic C++ stuff referenced from Xcode toolchain files

Can't get OpenFOAM-v2106 to build on macOS 10.14 / Xcode 11.3.1. It's complaining about a bunch of standard C++ functions and stuff missing from the global namespace. These references are in Xcode's own toolchain files, not the OpenFOAM source code. Dunno why this happens or what to do about it.
[OpenFOAM-v2106] $ ./Allwmake
gcc=/usr/bin/gcc
clang=/usr/bin/clang
mpirun=/usr/local/bin/mpirun
make=/usr/bin/make
cmake=/usr/local/bin/cmake
wmake=/Users/janke/tmp/openfoam/OpenFOAM-v2106/wmake/wmake
m4=/usr/bin/m4
flex=/usr/bin/flex

compiler=/usr/bin/xcrun
xcrun version 48.

========================================
2021-12-12 20:48:44 -0500
Starting compile OpenFOAM-v2106 Allwmake
  Clang system compiler
  darwin64ClangDPInt32Opt, with SYSTEMOPENMPI sys-openmpi
========================================

built wmake-bin (darwin64Clang)
Skip ThirdParty (no directory)
========================================
Compile OpenFOAM libraries

    ln: OpenFOAM/lnInclude
    ln: OSspecific/POSIX/lnInclude
wmake libo (POSIX)
xcrun c++ -std=c++14 -m64 -pthread -ftrapping-math -DOPENFOAM=2106 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-undefined-var-template -Wno-unknown-warning-option  -O3  -DNoRepository -ftemplate-depth-100  -iquote. -IlnInclude -I/Users/janke/tmp/openfoam/OpenFOAM-v2106/src/OpenFOAM/lnInclude -I/Users/janke/tmp/openfoam/OpenFOAM-v2106/src/OSspecific/POSIX/lnInclude   -fPIC -c POSIX.C -o /Users/janke/tmp/openfoam/OpenFOAM-v2106/build/darwin64ClangDPInt32Opt/src/OSspecific/POSIX/POSIX.o
In file included from POSIX.C:37:
In file included from /Users/janke/tmp/openfoam/OpenFOAM-v2106/src/OpenFOAM/lnInclude/OSspecific.H:42:
In file included from /Users/janke/tmp/openfoam/OpenFOAM-v2106/src/OpenFOAM/lnInclude/fileNameList.H:49:
In file included from /Users/janke/tmp/openfoam/OpenFOAM-v2106/src/OpenFOAM/lnInclude/fileName.H:51:
In file included from /Users/janke/tmp/openfoam/OpenFOAM-v2106/src/OpenFOAM/lnInclude/word.H:46:
In file included from /Users/janke/tmp/openfoam/OpenFOAM-v2106/src/OpenFOAM/lnInclude/string.h:56:
/Applications/Xcode-11.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:70:9: error: no member
      named 'memcpy' in the global namespace
using ::memcpy;
      ~~^
/Applications/Xcode-11.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:71:9: error: no member
      named 'memmove' in the global namespace
using ::memmove;
      ~~^
/Applications/Xcode-11.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:72:9: error: no member
      named 'strcpy' in the global namespace
using ::strcpy;
      ~~^
/Applications/Xcode-11.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:73:9: error: no member
      named 'strncpy' in the global namespace
using ::strncpy;
      ~~^
/Applications/Xcode-11.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:74:9: error: no member
      named 'strcat' in the global namespace
using ::strcat;
      ~~^
/Applications/Xcode-11.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:75:9: error: no member
      named 'strncat' in the global namespace
using ::strncat;
      ~~^
/Applications/Xcode-11.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:76:9: error: no member
      named 'memcmp' in the global namespace
using ::memcmp;
      ~~^
/Applications/Xcode-11.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:77:9: error: no member
      named 'strcmp' in the global namespace
using ::strcmp;
      ~~^
/Applications/Xcode-11.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:78:9: error: no member
      named 'strncmp' in the global namespace
using ::strncmp;
      ~~^
/Applications/Xcode-11.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:79:9: error: no member
      named 'strcoll' in the global namespace; did you mean 'strtoll'?
using ::strcoll;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h:172:3: note: 'strtoll' declared here
         strtoll(const char *__str, char **__endptr, int __base);
         ^
In file included from POSIX.C:37:
In file included from /Users/janke/tmp/openfoam/OpenFOAM-v2106/src/OpenFOAM/lnInclude/OSspecific.H:42:
In file included from /Users/janke/tmp/openfoam/OpenFOAM-v2106/src/OpenFOAM/lnInclude/fileNameList.H:49:
In file included from /Users/janke/tmp/openfoam/OpenFOAM-v2106/src/OpenFOAM/lnInclude/fileName.H:51:
In file included from /Users/janke/tmp/openfoam/OpenFOAM-v2106/src/OpenFOAM/lnInclude/word.H:46:
In file included from /Users/janke/tmp/openfoam/OpenFOAM-v2106/src/OpenFOAM/lnInclude/string.h:56:
/Applications/Xcode-11.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:80:9: error: no member
      named 'strxfrm' in the global namespace
using ::strxfrm;
      ~~^
/Applications/Xcode-11.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:81:9: error: no member
      named 'memchr' in the global namespace
using ::memchr;
      ~~^
/Applications/Xcode-11.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:82:9: error: no member
      named 'strchr' in the global namespace
using ::strchr;
      ~~^
/Applications/Xcode-11.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:83:9: error: no member
      named 'strcspn' in the global namespace
using ::strcspn;
      ~~^
/Applications/Xcode-11.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:84:9: error: no member
      named 'strpbrk' in the global namespace
using ::strpbrk;
      ~~^
/Applications/Xcode-11.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:85:9: error: no member
      named 'strrchr' in the global namespace
using ::strrchr;
      ~~^
/Applications/Xcode-11.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:86:9: error: no member
      named 'strspn' in the global namespace
using ::strspn;
      ~~^
/Applications/Xcode-11.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:87:9: error: no member
      named 'strstr' in the global namespace
using ::strstr;
      ~~^
/Applications/Xcode-11.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:89:9: error: no member
      named 'strtok' in the global namespace
using ::strtok;
      ~~^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [/Users/janke/tmp/openfoam/OpenFOAM-v2106/build/darwin64ClangDPInt32Opt/src/OSspecific/POSIX/POSIX.o] Error 1
[OpenFOAM-v2106] $

Try adding
depends_on xcode: :build

to the formula.

Oh, huh! Can you explain what that means, and does?
I'm currently trying to just get the OpenFOAM build working interactively, against brew-ed dependencies, so I'm not even running the OpenFOAM build itself under brew. (Partially so I can better understand what's going on, and partially because it's easier to see build errors when you're running interactively vs. looking through the brew logs after the fact.) Do you know what I should do in an interactive bash session to accomplish this same effect?
I'd just try to run this under brew install openfoam with your suggested tweak, but OpenFOAM is an hour-plus build, so...


improve the design

Pre-submission checklist:
Please check each of these after submitting your pull request:

[x] Are you only including a repo_url if your project is 100% open source? If so, you need to pick the single best GitHub repository for your project, not a GitHub organization.
[x] Is your project closed source or, if it is open source, does your project have at least 300 GitHub stars?
[x] Have you picked the single best (existing) category for your project?
[x] Does it follow the other guidelines from the new entries section?
[x] Have you added your SVG to hosted_logos and referenced it there?
[x] Does your logo clearly state the name of the project/product and follow the other logo guidelines?
[x] Does your project/product name match the text on the logo?
[x] Have you verified that the Crunchbase data for your organization is correct (including headquarters and LinkedIn)?
[x] ~30 minutes after opening the pull request, the CNCF-Bot will post the URL for your staging server. Have you confirmed that it looks good to you and then added a comment to the PR saying "LGTM"?

Hi  @caniszczyk
I have improved the design and added two more logos in this PR. Please take a look. Thanks.
FYI: Once this PR merged, I will create another PR to add more projects and update other logos.


Stuff we want to Present (13.12.2024)

do you have the .drawio diagram still open? if so could you send a screenshot in the group chat?


Problem with the blade view

The error is 'Cannot redeclare backgroundColor()'
I think you will need to extract the functions from the blade component, or can you try to declare as static functions.
This problem is presented using the following libraries:

Laravel 10.43
filament 3.2
octane 2.3 with frankenphp

Same problem.


Requesting an API to tune pinch sensitivity

Reference:
See https://groups.google.com/forum/#!topic/cornerstone-platform/U1JRmgzeiLU
I tried the "zoom (pinch)" at
https://rawgit.com/chafey/cornerstoneTools/master/examples/alltouchtools/index.html
but it moves too fast and the library doesn't provide a way to tune the pinch sensitivity.

What I see while pinching is a lag between the action and the final zoom, I suspect the zoom event is repeated many times while the user pinches the screen, Erik, what do you think, am I right?.
It looks like the zoom change must be called when the user stops pinching, and not while he is doing this.

Did you already merged the changes into master? Are they in a branch? Thanks.

No they haven't been merged yet as I am still up. They are in my fork in the touchPinch branch. There are some other touch/mobile features / fixes I want to include first.


White screen after flashing DPS5005

Hi,
I got my DPS5005 from Aliexpress and flashed it according to the "Upgrading your DPS5005" instructions. The flash was successfull, as far as I can tell, both the firmware and the bootloader flash finished with "Verified OK" and "Resetting Target". I had to CTRL-C out because the script was stuck. I suppose this is due to the reset pin not being connected?
After the bootloader reset, the screen turns on, but only shows a solid white color, the device is not responsive. How can I help with this issue. I know my way around C/C++ code, but I have limited experience debugging firmware, since my main job is application development.

Did you flash app and then bootloader? You could try to get comfortable with arm-none-eabi-gdband see if the app is actually running.

Hi. Yes, first the app, then the bootloader. Only after flashing the bootloader the screen turns white, without it the screen stays black. Something seems to be running, if I issue the "reset halt" command, the screen turns black again.
I'll ask the guys from our electronics department to set me up with gdb.

This sounds very similar to what I'm seeing with my '3005, see #228.
@daphreak66  did you happen to capture the output of ocd-client.py before flashing?

Unfortunately now. I wasn't sure if it's the same, since my screen at least turns white.
With some help I was able to run a debug session, but strange things happen. main() isn't even called, instead other random functions, not always the same. One time it was the reset_handler().
I've also tried flashing with st-flash and st-util instead of openocd, but the result is the same. Is it possible to download verified working binaries from somewhere, just to rule out the build process as an error source?

My 3005 screen is also white - backlight on, but nothing displayed.
You could try with the files in attachment - they're compiled for the 5005, and I'm running them on my 50V5A without a problem.
opendps_compiled.zip

Thanks, I'll try them later and report back

Also no luck with your binaries.
This is all I get from gdb:
(gdb) break dpsboot.c:main
Breakpoint 4 at 0x8000b60: file dpsboot.c, line 274.
(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /home/daphreak/workspace/opendps/dpsboot/dpsboot.elf

Program received signal SIGTRAP, Trace/breakpoint trap.
0x20001fdc in ?? ()

Forget the comment above, I used gdb and not arm-none-eabi-gdb unintentionally.

I finally got the break points working, I'm not even sure what exactly I did to make it work. I can confirm that the event_handler processes keypress events (breakpoint at opendps.c:964). I think it's the same as issue #228, so I'll close this issue.