Pass unprojected/unscaled values to render?

The way we implemented Plot.line with a projection had us skip the x and y scales if the curve was "projected" (see https://github.com/observablehq/plot/pull/1156/files#r1041916802). This works in practice, but the underlying reason for this branching is that the projected curve needs the raw (unprojected) coordinates, not that it wants to hides the channels from the scales (which in this case is the projection).
This need seems generic enough that we should try and consider systematically passing both the scaled and the unscaled channels to render(); so marks that need the unscaled values could have them without hiding these channels from the scale initializers?
In the particular case of Plot.line, skipping x and y is not a problem, since the projection doesn't set its domain from the channels; one might even argue that the current code is faster, since with this proposal we would compute projected coordinates "for nothing". But still I find this branching inelegant, and it doesn't allow us to set curve=projected as a default for when the mark is used with a projection—which would be my preference.

I considered passing the unsealed channels previously and deliberately avoided it because I feel like it adds further complexity to the mark.render interface.
I think we could equivalently change the meaning of curve: "linear" when there is a projection, rather than requiring curve: "projected". (I’m not sure we need both? Though maybe there is some edge case.)
The goal here is just to fix the “inelegant branching”? Or is there some new user-visible functionality that this would unlock?

The functionality is to have curve transparently default to "projected".
My thinking is that since the mark constructor can't access the options, there is no way at this stage to determine (implicitly) if there will be a projection in a plot that uses it. It's only decidable in render(), when we can read the context.
Also, we should keep "linear": for example a notebook that would teach the difference between planar and great circle routes would need to use both (like I did for the demo of planar vs spherical voronoi).

So, defaulting to curve: "auto" that automatically chooses between linear and projected at render would do it?

Yes, exactly. What I didn't figure in this case was how to implement it so that:

the scales are computed correctly in the general case (so, passing scale:"x" in the constructor)
when render needs unscaled values (because projection), it has access to them

I’ve retitled this issue so that it tries to capture the desired user functionality.
I don’t see a way of doing this currently because, as you say, we need to know in the constructor whether the x and y channels should be scaled (projected) or whether the mark will handle projection during render. And even if we found a way to use the projection during render on the unscaled values, presumably we’d still have pass the x and y channels through the projection and then ignore the result, which is wasted effort.
Do think this is urgent or a blocker? It doesn’t feel like a lot of work to add curve: "projected" to a Plot.line when you need it (or to use Plot.geo with a LineString), though it would certainly be nice if it were automatic.

I don't think it's a blocker, but it will be a breaking change when we change it, for people who expected the default to be linear when they hadn't specified a curve. But, for the best!


Allow passing custom CA certs for calls to bitbucket api

Concourse workers can be configured to pass custom certs to resources
This flag will help passing them to curl requests and avoid skipping ssl verification

@idr0id Please let me know if this PR is good to go or if you'd like me to modify anything

Thanks for PR!


[KYUUBI #3713] kyuubi-ctl list current sessions

Why are the changes needed?

How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

Codecov Report

Merging #3721 (7095951) into master (2b86d6d) will increase coverage by 0.11%.
The diff coverage is 97.36%.

@@             Coverage Diff              @@
##             master    #3721      +/-   ##
============================================
+ Coverage     52.46%   52.57%   +0.11%
  Complexity       13       13
============================================
  Files           490      492       +2
  Lines         27652    27689      +37
  Branches       3824     3825       +1
============================================
+ Hits          14508    14558      +50
+ Misses        11760    11746      -14
- Partials       1384     1385       +1

Impacted Files
Coverage Δ

...rg/apache/kyuubi/ctl/cli/ControlCliArguments.scala
32.09% <0.00%> (-0.41%)
:arrow_down:

...pache/kyuubi/ctl/cmd/list/ListSessionCommand.scala
100.00% <100.00%> (ø)

...in/scala/org/apache/kyuubi/ctl/opt/CliConfig.scala
82.97% <100.00%> (ø)

.../scala/org/apache/kyuubi/ctl/opt/CommandLine.scala
97.81% <100.00%> (+0.02%)
:arrow_up:

...main/scala/org/apache/kyuubi/ctl/util/Render.scala
95.83% <100.00%> (+1.60%)
:arrow_up:

.../java/org/apache/kyuubi/client/SessionRestApi.java
100.00% <100.00%> (ø)

...yuubi/server/metadata/jdbc/JDBCMetadataStore.scala
89.27% <0.00%> (-0.70%)
:arrow_down:

...he/kyuubi/ha/client/etcd/EtcdDiscoveryClient.scala
68.23% <0.00%> (+0.58%)
:arrow_up:

...g/apache/kyuubi/client/api/v1/dto/SessionData.java
79.48% <0.00%> (+38.46%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

BTW, could you raise another ticket to save the SQL session metadata into MetadataManager?

thanks, merged to master


Inline preview of an image

Hello again. I know this plugin is named hover-preview. But i was searching for a plugin that can display images right in the text. Like this:

So can you make an option to display images like this?

checkout this plugin. though it only works in markdown ?


RATIS-1032. Change proto and RaftConfiguration to support priority

What changes were proposed in this pull request?
Change proto and RaftConfiguration to support priority
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/RATIS-1032
How was this patch tested?
add ut to test it.

@szetszwo Could you help review this patch ? Thank you very much.


Improve the results from the faster-greedy-dag extractor

Compared to the current/old faster-greedy-dag extractor, this is a bit slower but produces better results.  I think it's mostly luck though, it just visits nodes in a way that for the benchmarks we have produces better results. I don't think there's any theoretical reason it's better.
``
###################################################
faster-greedy-dag-new vs faster-greedy-dag-old
extractors: ['faster-greedy-dag-new', 'faster-greedy-dag-old']
data/babble/physics_scientific_unsolved_4h_ellisk_2019-07-20T18.09.34--bench000_it0.json  differs in dag cost:  89 91
data/babble/list_list_hard_test_ellisk_2019-02-15T11.26.41--bench007_it10.json  differs in dag cost:  419 418
data/babble/list_list_hard_test_ellisk_2019-02-15T11.43.28--bench007_it7.json  differs in dag cost:  298 299
data/babble/list_list_hard_test_ellisk_2019-02-15T11.43.28--bench009_it13.json  differs in dag cost:  395 392
data/babble/list_list_hard_test_ellisk_2019-02-15T11.43.28--bench008_it8.json  differs in dag cost:  330 329
data/babble/list_list_hard_test_ellisk_2019-02-15T11.43.28--bench011_it19.json  differs in dag cost:  364 363
data/babble/list_list_hard_test_ellisk_2019-02-15T11.31.39--bench010_it16.json  differs in dag cost:  347 346
data/babble/physics_scientific_unsolved_4h_ellisk_2019-07-20T18.09.34--bench001_it1.json  differs in dag cost:  144 143
data/babble/list_list_hard_test_ellisk_2019-02-15T11.31.39--bench009_it11.json  differs in dag cost:  367 366
data/babble/list_list_hard_test_ellisk_2019-02-15T11.31.39--bench006_it6.json  differs in dag cost:  246 247
data/babble/list_list_hard_test_ellisk_2019-02-15T11.43.28--bench010_it17.json  differs in dag cost:  381 380
data/babble/physics_scientific_unsolved_4h_ellisk_2019-07-20T18.05.46--bench004_it4.json  differs in dag cost:  183 182
data/babble/physics_scientific_unsolved_4h_ellisk_2019-07-20T18.09.34--bench006_it7.json  differs in dag cost:  153 152
data/babble/list_list_hard_test_ellisk_2019-02-15T11.35.48--bench010_it12.json  differs in dag cost:  371 369
data/babble/physics_scientific_unsolved_4h_ellisk_2019-07-20T18.16.45--bench001_it1.json  differs in dag cost:  126 125
data/babble/list_list_hard_test_ellisk_2019-02-15T11.26.41--bench010_it15.json  differs in dag cost:  427 426
data/babble/list_list_hard_test_ellisk_2019-02-15T11.35.48--bench005_it5.json  differs in dag cost:  245 244
data/babble/list_list_hard_test_ellisk_2019-02-15T11.43.28--bench005_it5.json  differs in dag cost:  231 232
data/babble/list_list_hard_test_ellisk_2019-02-15T11.39.19--bench004_it5.json  differs in dag cost:  235 234
data/babble/physics_scientific_unsolved_4h_ellisk_2019-07-20T18.09.34--bench004_it4.json  differs in dag cost:  122 120
data/babble/physics_scientific_unsolved_4h_ellisk_2019-07-20T18.09.34--bench005_it5.json  differs in dag cost:  141 140
data/flexc/67addae9-f7db-4ebb-a02e-e1e045f87fc4.json  differs in dag cost:  37 36
data/flexc/4a29e9e7-a232-4608-b7d2-37796d0ecd97.json  differs in dag cost:  37 36
data/flexc/03d369d0-bb23-477a-8ea1-a452efc850fe.json  differs in dag cost:  37 36
data/flexc/db344dbd-fb20-4e9e-badb-076d7a3809bc.json  differs in dag cost:  37 36
data/flexc/86d12271-435d-463d-a7b4-e671423f0ced.json  differs in dag cost:  37 36
data/tensat/nasneta.json  differs in dag cost:  16.374893040569077 16.322293040515433
data/tensat/nasneta_acyclic.json  differs in dag cost:  16.35845509585488 16.301627096203447
data/egg/math_simplify_factor.json  differs in dag cost:  6 5
data/fuzz/14.json  differs in dag cost:<PHONE_NUMBER>0419093<PHONE_NUMBER>7412016
data/fuzz/15.json  differs in dag cost:<PHONE_NUMBER>8194644<PHONE_NUMBER>7121393
data/fuzz/1.json  differs in dag cost:<PHONE_NUMBER>0550405<PHONE_NUMBER>974897
data/fuzz/6.json  differs in dag cost:  97.14818527661234<PHONE_NUMBER>0064035
data/fuzz/5.json  differs in dag cost:  46.30896318297725 54.138384368771
data/fuzz/12.json  differs in dag cost:<PHONE_NUMBER>38086<PHONE_NUMBER>7989165
data/rover/box_filter_3iteration_egraph.json  differs in dag cost:  1701 1819
cumulative time for faster-greedy-dag-new: 3585ms
cumulative time for faster-greedy-dag-old: 3180ms
cumulative tree cost for faster-greedy-dag-new:<PHONE_NUMBER>9805
cumulative tree cost for faster-greedy-dag-old:<PHONE_NUMBER>0420
cumulative dag cost for faster-greedy-dag-new: 79973
cumulative dag cost for faster-greedy-dag-old: 80251
Cumulative time for faster-greedy-dag-new: 3585ms
Cumulative time for faster-greedy-dag-old: 3180ms
faster-greedy-dag-new / faster-greedy-dag-old
geo mean
tree: 0.9907
dag: 0.9960
micros: 1.2354
quantiles
tree:   0.3535, 1.0000, 1.0000, 1.0000, 1.1419
dag:    0.6466, 1.0000, 1.0000, 1.0000, 1.2000
micros: 0.4228, 1.1455, 1.1981, 1.3196, 3.3375

This is an interesting experiment- not sure if we should merge it since we don't have a reason why it's better
Maybe you could merge it as faster-greedy-dag-alt? Or just keep this a draft.

Yeah I think we close this for now, unless something changes and makes it better. Fewer more distinct extractors seems like the way to go for now. Happy to re-open if other feel differently.


TOTP or something similar

I am curious about this topic because I want to create external app(eshop module) which will communicate with meteor app using restivus and authorization is needed.
One solution which comes to my mind is that I could store username and password somewhere in external app but this storing password somewhere in plaintext is not right.
But if I use TOTP I will have to store that one-time password somewhere too am I right?

I don't feel qualified to answer this without doing some further research, which I won't have time to do in the foreseeable future. If you don't get any feedback here (@jazeee may have some input on this if he's available), I would suggest posting this question on stack overflow.
If you need a means of providing custom authentication, check out the auth configuration option. There's currently no out-of-the-box support for custom authorization, but that's not to say you can't roll your own. Sorry for the lack of documentation on the custom auth. I'm aware of it and plan to update it soon (#98).


Swipe Mode should respect more Priority values than "persist"

We are using tablesaw with minimap to display our sailing race results (created by Sailwave but modified via a Java application to make an individual summary page and individual race details page or each race) that can display well on small screen devices.  The summary page is a single page that has multiple summary tables (one for each fleet with position finishes for each competitor) that each have links to an individual results table (details such as start time, finish time, corrected time, finish position, etc.) on the specific race pages. There can be more than 50 races (individual column) in the summary table. We would like to set the initial focus in each of the tables on the summary page to the last column in the first row (display last column of first row as the rightmost column on the display) since most users are more interested in the latest results and should not have to scroll over to the last column.  Is there a way to do that? If there were a generic solution to set the focus to any row and column, this may have applicability for other applications.

I assume by focus, you mean visibility?
Have a look at data-tablesaw-priority: https://github.com/filamentgroup/tablesaw#toggle
Please reopen if I’ve misunderstood!

No.  My initial request was to be able to position to a specific column and row for the initial focus in the view.
For example, assume the table is 20 columns by 6 rows and the size is such that only 5 columns (e.g., iPhone or Android screen) can be contained in the view and we want the last columns (the ones with the most current information) to be selected and shown in the initial view.  The user can then scroll to the earlier columns if desired, but the latest information (i.e., the rightmost columns) are the ones to be displayed first.
Tom Owen
From: Zach Leatherman<EMAIL_ADDRESS>Sent: Wednesday, September 14, 2016 11:54 AM
To: filamentgroup/tablesaw<EMAIL_ADDRESS>Cc: towen999<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [filamentgroup/tablesaw] set focus to specific row and columm (#147)
I assume by focus, you mean visibility?
Have a look at data-tablesaw-priority: https://github.com/filamentgroup/tablesaw#toggle
Please reopen if I’ve misunderstood!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/filamentgroup/tablesaw/issues/147#issuecomment-247060670, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOHnkijyC4VXy6EuWH42YTnyYvOVuU4cks5qqBixgaJpZM4GCVnx.

[Avast logo] https://www.avast.com/antivirus
This email has been checked for viruses by Avast antivirus software.
www.avast.comhttps://www.avast.com/antivirus

+1 on this. I wrongly assumed data-tablesaw-priority also controlled which columns were hidden at what width in swipe mode.
At the narrowest width, with a 6 column table I want to see two columns, #1 and #6, with 2,3,4, 5 hidden (this is the same as described above I believe and in it's simplest form maybe just is a "left vs right" direction to hiding columns)
Ideally however at the narrowest width, with a 6 column table one could set two columns visible, #1 and #4, with 2,3,5,6 hidden.
The first seems pretty easy by defining a direction, hide 2, then 3 then 4 but keep 5 as the screen narrows, or  hide 5, then 4, then 3 but keep 2 as the screen narrows.
The later is a bit more more complicated because the focus column is in the middle, so one would be able to swipe right or left from it.  It however lead to the crazy case of showing columns 1, 3, 5.  Then what happens? it all falls apart, swiping would make no sense.

This repository is now using lodash style issue management for enhancements. This means enhancement issues will now be closed instead of leaving them open.
The enhancement backlog can be found here: https://github.com/filamentgroup/tablesaw/issues?utf8=✓&q=label%3Aneeds-votes+sort%3Areactions-%2B1-desc+
Don’t forget to upvote the top comment with 👍!


Sorting files/folders error

Sorting files/folders by modified and created with descending causes:
SyntaxError: Unexpected token 'I', "Internal S"... is not valid JSON

Papermerge Version 3.0.3

I was able to reproduce it. Thank you for reporting the issue!


fix: replace pulsating shogun logo with shogun spinner

Title says it all...

:tada: This PR is included in version 6.6.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


HDDS-11462. Enhancing DataNode I/O Monitoring Capabilities.

What changes were proposed in this pull request?
In this enhanced functionality, we have added the following features:

DataNode UI now supports displaying heartbeat information.

The DataNode Volume list now shows the number of containers.

DataNode includes new tabs for I/O Stats and Data Scanner.

IO Status

Data Scanner

I/O Stats now supports more detailed performance metrics.

{
    "name" : "Hadoop:service=HddsDatanode,name=VolumeIOStats-/data2/ozonedata/hddsdata",
    "modelerType" : "VolumeIOStats-/data2/ozonedata/hddsdata",
    "tag.StorageDirectory" : "/data2/ozonedata/hddsdata/hdds",
    "tag.Hostname" : "bigdata-s2688-hdp446.apache01",
    "ReadLatency60sNumOps" : 0,
    "ReadLatency60s50thPercentileLatency" : 0,
    "ReadLatency60s75thPercentileLatency" : 0,
    "ReadLatency60s90thPercentileLatency" : 0,
    "ReadLatency60s95thPercentileLatency" : 0,
    "ReadLatency60s99thPercentileLatency" : 0,
    "WriteLatency60sNumOps" : 0,
    "WriteLatency60s50thPercentileLatency" : 0,
    "WriteLatency60s75thPercentileLatency" : 0,
    "WriteLatency60s90thPercentileLatency" : 0,
    "WriteLatency60s95thPercentileLatency" : 0,
    "WriteLatency60s99thPercentileLatency" : 0,
    "ReadBytes" : 128011956,
    "ReadOpCount" : 131,
    "ReadTimeNumOps" : 131,
    "ReadTimeAvgTime" : 1.3125,
    "WriteBytes" : 0,
    "WriteOpCount" : 0,
    "WriteTimeNumOps" : 0,
    "WriteTimeAvgTime" : 0.0
  }

Optimized the display of JVM information in the DataNode UI.

What is the link to the Apache JIRA
JIRA: HDDS-11462. Enhancing DataNode I/O Monitoring Capabilities.
How was this patch tested?
Junit Test.

Thanks for working on this @slfan1989. I only reviewed the metrics changes for now since the web UI changes are not something I'm too familiar with.

@errose28 Thank you very much for reviewing the code! I will make improvements to it as soon as possible.

@ivandika3 This pr involves some changes to the display of DN. I'm wondering if you could help with the review?
I want to keep pushing this PR forward.
cc: @errose28

@slfan1989 Thanks for the patch. Overall LGTM. Left some comments.

@ivandika3 Thank you very much for helping to review the code! I will improve it as soon as possible based on your suggestions.

@slfan1989 Thanks for the update. LGTM +1.
Please help to do final verification on the pages and update the screenshot in the description page.

@ivandika3 Thank you very much for reviewing this PR. I will prepare the relevant screenshots as soon as possible.

Thanks @slfan1989 for the patch and @errose28 for the review.

@ivandika3 @errose28 Thank you very much for the review!


strptime does not populate all time::Tm fields

This sample code does not what's expected:
extern crate time;
fn main() {

  let t = time::at(time::Timespec::new(236928791,113000000));
  let format = "%Y-%m-%d %T.%f";

  let witness = "1977-07-05 07:33:11.113000000";
  assert_eq!(time::strftime(format, &t).ok().unwrap(), witness);

  assert_eq!(time::strptime(witness.as_ref(), format).unwrap(), t);

}

I wonder if I'm doing something wrong or the library is behaving wrong... ?

I see something similar. wday and yday are not set when parsing a date.

Saw something similar with my attempts to parse time from log file:
11/05/15 22:08:14 becomes a proper Tm struct, but when i convert to timespec i get:
Timespec { sec: -1708998706, nsec: 0 }
Due to that you cannot compare strptime() Tm with normally initialized ones.
But not sure how ```strptime`` should behave?

Same here:
extern crate time;

use time::{strptime, Duration};

fn main() {
    let t1 = strptime("2016-02-05 16:52:21", "%Y-%m-%d %H:%M:%S").unwrap();
    let t2 = strptime("2016-02-05 16:52:22", "%Y-%m-%d %H:%M:%S").unwrap();

    // This fails, because tm_wday and tm_yday are not set using strptime:
   assert_eq!(t1 + Duration::seconds(1), t2);

    // This runs as a work around:
    assert_eq!(t1 + Duration::seconds(1), t2 + Duration::seconds(0));
}

Any news on that ?
I know time is deprecated and I'll move to chrono when I have more time.
(And chrono uses time internally ? At least there is a dependency in its Cargo.toml)
Thanks!


add support for angular ui-router 1.0-rc

The entire state transition api has changed, which will require some different logic for this.  I can work on a proposed fix and issue a PR.

Thanks :) Linking the PR here, since otherwise it is not clear that a PR even has been issued: https://github.com/auth0/angular-jwt/pull/138


Updated notebooks to make them more "general"

I created a group of notebooks that I think cover the "Analyst Experience". The 4 notebooks take you step by step through the process of creating twins/models/ and relationships.

Hi @mayurid @lmazuel and @annatisch , @zolvarga and I have talked with Bill about adding these notebooks as samples for the ADT SDK as they showcase the analyst use case, could you please help us get these merged or let us know of any changes you suggest? Thanks!

Thank you @BillmanH, @elhorton - this is awesome - thank you for contributing samples!
@czubair, @maggiepint - do we have any guidance on adding these kinds of more comprehensive samples into the repo? Do we typically keep them in this repo, or elsewhere?

@elhorton, @czubair, @maggiepint,  On thinking about this Is this the best place for notebooks? I was looking at some other Azure repositories and saw that they have separate repos for notebooks. Is that something you can set up for digital twin? Here's an example from azure machine learning. It may be better to attach them in that way. What do you think?

@elhorton, @czubair, @maggiepint, On thinking about this Is this the best place for notebooks? I was looking at some other Azure repositories and saw that they have separate repos for notebooks. Is that something you can set up for digital twin? Here's an example from azure machine learning. It may be better to attach them in that way. What do you think?

Adding in my thoughts-- I think for now, since the Jupyter notebooks run the Python ADT SDK, this repo would be a good place for them as they're high quality samples and most discoverable here. However, if @maggiepint or @czubair don't think the Azure SDK repo is a good location, then I absolutely think we should set up a generic ADT samples repo-- I'd collaborate with the ADT team to help get that set up. @maggiepint @czubair @annatisch do you have thoughts on this? let us know if it's easier to chat this through.

@maggiepint or @czubair , can you please help with this? Would love to get this merged. Thanks.

@maggiepint or @czubair , can you please help with this? Would love to get this merged. Thanks.

Even if we're unsure of the right place, I prefer merge the PR than to let it open. We can move the files as necessary. @annatisch CC


slower then mongo-php-driver-legacy?

Upgrade PHP to 7.0, ext mongo can't work, so I change it to mongodb + mongo-php-library.
And I found db operations seem slower than the legacy version mongo-php-driver-legacy.
calling find method:
PHP 5: 365ms
PHP 7: 922ms
Is it any issue about this library? or mongo-php-dirver ?
Regards

use the same db, mongodb 3.0

I xdebug it, and found that so many bsonUnserialize.
But ext mongo didn't need these callings. Are there any better ways to do this?

I'm also blocked by Mongo in my path to upgrade PHP 7.0.  Not only do things like this post concern me,  but also migrating will be a tremendous task for us since every simple operation from insert, update to commands all need to change.  I know this new driver will be ideal someday, but in the mean time, what is the core reason for why the old Mongo driver cannot be made to work in PHP 7?

@tpneumat I think because the differences about the ext PHP5 and PHP7.
Old mongo supporting PHP 7 would be so many working.

PHP 5: 365ms, PHP 7: 922ms

@imlcl: Can you share the code (and data fixtures) you're using to obtain these measurements? I don't see this represented in the profiling graphic you shared.
There is going to be overhead to this userland library (vs. using the legacy ext-mongo extension or just the new ext-mongodb extension alone).
In the profiling data you've shared, the many bsonUnserialize() calls are coming from the library returning each document as a MongoDB\Model\BSONDocument instance. This is default behavior of the library, as that class (and its BSONArray counterpart) makes it possible to preserve BSON arrays and documents when round-tripping data (something that was impossible under certain circumstances with the legacy driver returning everything as a PHP array).
You can disable this behavior via the typeMap option on the core classes (e.g. MongoDB\Client) or operations (e.g. find()). See this documentation for an example of restoring the legacy driver behavior. If you're using ext-mongodb directly, note that it returns BSON arrays and documents as PHP arrays and stdClass instances, respectively.

migrating will be a tremendous task for us since every simple operation from insert, update to commands all need to change.

@tpneumat: If the API changes are a problem, you may be interested in alcaeus/mongo-php-adapter, which implements the ext-mongo API atop the new extension.

what is the core reason for why the old Mongo driver cannot be made to work in PHP 7?

Porting the legacy extension to PHP 7 and HHVM, which was also a target for us, would have required considerable resources, and the maintenance burden going forward would have been even greater. This was a ripe time to essentially bump major versions and revise the API without carrying over various design mistakes from ext-mongo into the future.

You can disable this behavior via the typeMap option on the core classes (e.g. MongoDB\Client) or operations (e.g. find()). See this documentation for an example of restoring the legacy driver behavior. If you're using ext-mongodb directly, note that it returns BSON arrays and documents as PHP arrays and stdClass instances, respectively.

@jmikola Thank you very much. Yes, I add 'typeMap' => ['root' => 'array', 'document' => 'array'] to my find method, and decrease dramatically of calls.
before:

after:

I rewrite some codes, upgrade to mongodb 1.1.5, here is the performance:
PHP5(ext mongo): 156ms
PHP7(ext mongodb): 200ms
Slightly slower than ext mongo, I think it is ok.

I rewrite some codes, upgrade to mongodb 1.1.5, here is the performance:
PHP5(ext mongo): 156ms
PHP7(ext mongodb): 200ms

Offhand, was the "ext mongodb" test using both the extension and this library, or just the extension API directly?
We do have a tracking ticket to benchmark the new driver against the legacy one PHPC-286. I've cross-linked this issue so we can reference it down the line when we get around to creating those tests.

Offhand, was the "ext mongodb" test using both the extension and this library, or just the extension API directly?

Yes, mongodb-php-driver + mongodb-php-library vs ext mongo.
The benchmark's codes do multi-databases multi-collection find one page of data working.

Interesting topic. I migrated my app from using the old extension to the new ext + library and noticed a similar performance drop. In php 5.6 it was about 20-30% slower in requests per second. Using PHP 7 it was almost similar to the old driver, still slower. It feels like a loss, migrating to PHP 7 + new extension. The overhead seems to be quite huge. Was hoping for performance improvement.
I have to exactly pin point where the slowness is coming from, might even consider just implementing the bare driver instead of using the library.

Indeed interesting.
I also have decrease in performance. Thought upgrading to PHP7 will reduce CPU/MEMORY and will improve performance.

php-mongo-adapter is up to 3x slower than legacy driver.  If you upgrade PHP5.6 to PHP7 you will have less memory consumption but higher load times.
I'm looking forward to see MongoDB ODM in action to get rid of the adapter.


Allow using a custom Cursor implementation

This PR builds on top of #2, since it includes similar code style changes.
This adds a CursorTranslator behaviour. The Base64Hashed Cursor implements this behaviour, but users of this library can pass their own module as long as it implements the CursorTranslator behaviour.
This also alters the default cursor implementation to check the checksum. This makes it "A tamper-resistant (not tamper-proof) implementation that uses base64 and a hashed padding.". This should not (but can be considered to) be a breaking change.

Thanks for taking the time to review and for open-sourcing this library!

@jeroenvisser101 With your changes merged, I went ahead and published this package. https://hex.pm/packages/absinthe_relay_keyset_connection

Oh that's awesome! Thanks again!


Add sidebar/main area toggle

Thanks for this, really a great integration!
This hits a bunch of points from #3:

adds a command for toggling between sidebar/main area
adds to toolbar

note: when you toggle, react/lumino/lab/iframe have a fight, and if you're in a chat :boom: you have to start over

icon (just grabbed one from material, linked to license in file)
sensible min-width on the outermost widget

...and in learning the code base, some personal nits

run the linter, fix the lint
null state (for when no rooms are configured)
replaces name dialog with persistent input/button

could use some work to react (har) to enter, but would need to refactor some stuff out of event handlers

checks in yarn.lock

making it work in a second tab is worthy... but probably out of scope for this round!
screens

in a main area chat

getting ready to chat in the main area (could probably use some work)

lots of rooms (scrolling, but you can still see the form)

no rooms, but a big honking icon

\o/ This is awesome, thank you very much, @bollwyvl. I'd like to give you npm permissions too so you can publish, what is your username?

@yuvipanda :heart: ! my account name is the same on npm, bollwyvl, but can't promise how responsive i can be... maybe doing the autodeploy thing from CI on tag? guess ci would have to be a bit more exhaustive for that.
i'll toss some other ideas up that might be feasible in smallish chunks (this one felt kinda heavy) that i would like to see, but may not have the bandwidth to execute on presently.

@bollwyvl awesome! Yeah, tag on CI seems best but too lazy for that yet. Would love PR from someone :D
I added you as maintainer, and made a release as well. Thanks!


Allow existing cloudfront distribution as a param

Enabler for serverless-next.js ticket.
Currently to maintain a single cloudfront distribution, the .serverless/Template.<>.CloudFront.json file is needing to be committed to the repo.
Ideally, the distribution id should be able to be maintained in a config and dynamically loaded in.

This is really necessary for the nextjs component. Currently opting out of components because of this :(


adding German Translation

Hey,
this adds a file with the translated german strings, I'd thought this would be an good addition

Thanks @lucaheise  !
We will test it to include your work in next release ;)

Thanks @lucaheise


[BUG] Issues with Reservation View Display

Describe the bug
Sometimes reservations will not display with the correct length. Also, potentially consider allowing reservations to start and end within the same hour if they don't overlap (for example if an event ends at 5:30 and another one starts at 5:30, it wouldn't let us create the second event).
Expected behavior
It should be displaying on the reservation calendar view correctly.
Additional context
No specific issues have been identified, but other issues will be added later through comments.

Should be fixed in #484


hashing performance

relevant repo for investigating hashing techniques we may be able to use:
https://github.com/OffchainLabs/sszpp

from convo's with @potuz

the entry point for your spare tree hash function
https://github.com/ralexstokes/ssz-rs/blob/main/ssz-rs/src/merkleization/mod.rs#L123
And this is the key point that you use this signature for hashing:
https://github.com/ralexstokes/ssz-rs/blob/main/ssz-rs/src/merkleization/mod.rs#L210

So your hasher function takes as input 2 chunks which are then combined into a 64 byte block and then hashed. If you could adapt this routine to use a hasher that takes a slice of bytes, multiple of 64 as input, and another preallocated buffer, multiple of 32 as output, so that the hasher hashes continously all 64 bytes chunks and spits out the consecutive 32 byte hashes in the output slice, then you can trivially switch to the vectorized assembly without any cost. The Go version of the algorithm is here:
https://hackmd.io/80mJ75A5QeeRcrNmqcuU-g#Solving-1
And the faster version I'm using in ssz++ is here
https://github.com/OffchainLabs/sszpp/blob/main/lib/merkleize.hpp#L149

latest:
optimized hashing routines here: https://github.com/prysmaticlabs/hashtree
demo: https://github.com/potuz/hashtree_rust_demo


Nested contract creation calls give segmentation fault.

We are trying to build a cpp-ethereum like client by using evmjit. However, we are getting segmentation faults when handling a contract creation request which contains bytecode to create another contract.
We have written our callback functions as specified in evmc_context_fn_table structure. When we receive a request which contains a bytecode for nested contract creation the flow goes as follows (verified with gdb):

Our code first calls execute function on evmjit which goes to execute function defined in JIT.cpp:403(This is the top level contract creation call) .
execute function processes the requests and internally calls the function call in JIT.cpp:174.
The call function calls our callback function (defined by the function pointer evm_call_fn) and it also passed a new un-initialized evm_result object to our callback function.
Now we do some pre-processing on our side and again call the execute function on evmjit (This is the nested contract creation call).
This time the execute function completes without going to call function but at the end of execute function it sets the pointer to the ctx.m_memData into optional data field of evm_result. However, note here that this was a contract creation call and optional data uses the create_address field.
When the execute call returns to our callback with successful execution, we set the address of newly created contract into the create_address field of evm_result object. But this over-writes the already stored pointer value
our callback returns to the call function at JIT.cpp:174. This function continues till line 220 where it tries to release the resources of evm_result object but the std::free call obviously fails because value stored in optional data of evm_result is not a valid pointer.

This causes the segmentation fault and even if you somehow avoid segmentation faults it causes memory leaks too because actual ctx.m_memData was never released. Currently we avoid this segmentation fault by calling release on result object before writing create_address field in our callback (step 6), however this is against the evmjit principles that:
1.evm_result object owner should call release on it
2. the object should not be used after calling release on it.

Sorry, I don't have now time to take care of it. Why do you use it anyway?


xds: Listener.address field is not required when api_listener is populated

Signed-off-by: Mark D. Roth<EMAIL_ADDRESS>Commit Message: xds: Listener.address field is not required when api_listener is populated
Additional Description: This removes the overly restrictive PGV annotation that the address field is required, since there are cases where it does not need to be populated.
Risk Level: Low
Testing: N/A
Docs Changes: Included in PR
Release Notes: N/A
Platform Specific Features: N/A
The right long-term solution is to use a oneof for the different types of listeners, as described in #15372.  But in the interim, it should not be necessary to populate the address field for non-socket listeners.
CC @costinm

/retest

This CI failure is legit as there is a test that looks like it's relying on this. It will need to be switched to something else unfortunately.
/wait

Looking at the failing test, I don't quite know what the right way is to fix it.  The test itself looks like it's just checking the PGV annotations on the Listener proto itself, and the annotation I'm removing here is basically the only one in that proto that could cause it to fail, which would suggest that maybe that test can just be removed.  But on the other hand, the test is called LdsRecursivePgvFail, which suggests that maybe it's actually testing some other recursive failure mode that is maybe not specific to Listener resources, which would suggest that the test should be changed to use some proto other than Listener.
Can someone please advise as to the right way to address this?  Thanks!

which suggests that maybe it's actually testing some other recursive failure mode that is maybe not specific to Listener resources, which would suggest that the test should be changed to use some proto other than Listener.

Yes the test is there is verify a specific type of failure case so we need to use some other proto to test the same thing.

/retest

I'm not sure what's going on with the remaining CI failure here, but it doesn't look related to the PR.

/retest

Looks like CI is green now.  Can we get this merged?  Thanks!


Validation issue with +117755555555 (+11 interpreted as +1)

Country/region affected (e.g., "US"): US
Example number(s) affected ("+1<PHONE_NUMBER>"): +117755555555
The phone number range(s) to which the issue applies ("+1 555 555-XXXX"): +11 XXX XXX-XXXX
The type of the number(s) ("fixed-line", "mobile", "short code", etc.): ALL
The cost, if applicable ("toll-free", "premium rate", "shared cost"): N/A
Supporting evidence (for example, national numbering plan, announcement from mobile carrier, news article):
The country code "+11" is invalid, but instead of coming back as invalid, it seems like the library is interpreting "+11" as "+1".
link to demo

@yodasan ,
Thank you for taking the time to improve libphonenumber!
When the input is in E.164 format i.e "+ <country+code> ", library tries to match the digits after "+" against valid country codes.  This is the reason why "1" is considered as country code, not "11" or "117"..  The digits after valid country code is considered as phone number. Ex:<PHONE_NUMBER>5 in this case.
This is how all telephone routing / exchange system works.

So, what you're saying is that telephone routing / exchange systems do a digit by digit check to find the valid country code, so the first valid country code that is found in the lookup is "+1". I can understand why the library chooses "+1" as a valid country code. If that is the case, I would expect the parsing result from the demo link I posted to parse the country_code as "1" and national_number as "17755555555" (as you mentioned should be in this case). Instead, the parsed national_number is "7755555555" without the extra "1". As an alternative example, using the number "+127755555555" instead of "+117755555555" does in fact result in an error out with a "TOO_LONG" error (http://libphonenumber.appspot.com/phonenumberparser?number=%2B127755555555). This is the error I would expect a provided "+11" to return, as well. I'm trying to understand why the extra "1" is thrown out from the parsing result and seen as a valid number instead of a "TOO_LONG" error being returned.

@yodasan,
Thanks so much for noting all the details. These are very good questions. :)

Why national_number is<PHONE_NUMBER>5 instead of<PHONE_NUMBER> in case of +<PHONE_NUMBER>55 ?
In US "1" is used as country code and also as national prefix. So the "1" in<PHONE_NUMBER>5 is considered as national prefix (Prefix which is used for long distance calls).  This is why the extra "1" is removed from the parsing result.
Why +127755555555 is considered as "TOO_LONG"?
In this case national_number is<PHONE_NUMBER>5. All mobile and landline numbers in US are of length 10 digits and this number is of length 11 digits.

There doesn't seem to be an issue here, closing.
Please consider joining the discussion group if you'd like to discuss this further, and for future discussions.


Franknoirot/sketch light mode

Make the client-side ThreeJS scene that powers sketch mode honor the user's app.theme setting
Demo
https://github.com/KittyCAD/modeling-app/assets/23481541/18adea2c-9660-4104-8a4a-a505e77e0f60

🔥 🔥

You should merge this, don't wait for the overlays.


tests: Use hspec as test driver (prep for #407 #430 #440 unit tests); speed up

Description
Preparation for adding unit tests for #407, #430, #440.
tests: Clean up test-suite in cabal

silence warnings about unlisted modules
remove xmonad-contrib dependency to make it unambiguous that modules
are recompiled with -DTESTING, not taken from the library
sort build-depends

tests: Use hspec as test driver
My main motivation here is that I'd like to add some unit tests (as
opposed to testing everything using QuickCheck properties), but there
are other benefits: it's now easier to run a subset of tests -- the
command-line interface is more powerful.
Also, rename the test-suite to "tests" as it's no longer limited to
properties.
tests: Speed up by producing less discarded tests in SwapWorkspaces
X.A.GridSelect: Use OVERLAPPABLE, seems to help with unnecessary recompiles
Without this, any change to tests triggers a recompile of GridSelect
when invoking "stack test", adding a couple seconds. This seems to help.
Checklist

[X] I've read CONTRIBUTING.md

n/a I tested my changes with xmonad-testing

n/a I updated the CHANGES.md file

n/a I updated the XMonad.Doc.Extending file (if appropriate)

X.A.GridSelect: Use OVERLAPPABLE, seems to help with unnecessary recompiles
Without this, any change to tests triggers a recompile of GridSelect
when invoking "stack test", adding a couple seconds. This seems to help.

It is also a bit nicer (imo) to explicitly specify which instance is overlappable/overlapping; OverlappingInstances is deprecated in newer versions of GHC anyways

X.A.GridSelect: Use OVERLAPPABLE, seems to help with unnecessary recompiles
Without this, any change to tests triggers a recompile of GridSelect
when invoking "stack test", adding a couple seconds. This seems to help.

It is also a bit nicer (imo) to explicitly specify which instance is overlappable/overlapping; OverlappingInstances is deprecated in newer versions of GHC anyways


If no housenumber is entered or found, the area for moving the pin is too small

Example:

For the first geolocation, enter "Camino Chueco, Santa Fe" or even with any housenumber like "26, Camino Chueco, Santa Fe"
The street will be found, the pin will be set on some part of it
The circle to move the pin is much to small to reach all of the street

This may also lead to bad entrys and misplaced notes.

The functionality probably was added only recently after #89 ?
It looks like a bit of finetuning could be helpful.
In cases like the "Camino Chueco", the marker is placed around the middle of the way that Nominatim returned. But there is a second way to the east going south, so this part hasn't been included in the calculation of the mid-point.
Would it be possible to add all the parts and return an area that encompasses the whole of the street?
Then the user could move the pin easily to the correct place.
In cases where only a city was entered or found (maybe because the street name is missing in OSM) the area to drag the pin is quite large, but there is another problem:  #127

This should be resolved with the changes I made in #137. Please let me know if you're still running into problems.

Thanks for working on this!
I just tried the random "Camino Chueco, Santa Fe" from the original post.
It it cool that you can see the bounding box, was that there before?
But as you can see in the screenshot, the street of that name is not completely inside the bounding box:

In the data, the street is divided into two ways, and the other one is not inside the bounding box.

That's a limitation of Nominatim. This is the bounding box that they give back to us. I guess we could find a bounding box for the city instead? Or suggest that the user search for the city instead of just the street?


esp_mqtt_client_enqueue, len parameter documentation and behaviour is in conflict (IDFGH-8725)

The documentation states that if the len parameter is set to 0, length is calculated from payload string. This is clearly not the case, at least not in version 4.4.2. Either the documentation need to be updated or the code.

Hi @tpataky, thanks for reporting. This is a known issue that was fixed in 4.4.3.


[feat]:Form control state #4

What is this PR about?  Adding states to FormControl
Related issue number: #4
Description of changes:

Created client directory to organize client method.
Created methods to get form values in client.
Implement isPristine and isValid state to FormControl.

Tag a reviewer: @ayoayco
Tasks:

[x] I have ran the tests to make sure nothing is broken (see CONTRIBUTING.md)
[x] I have mentioned the issue this PR is addressing

Great work!


Exception: Error while deserializing header: HeaderTooLarge

Hi again
the script worked fine on my dev machine, but when I moved it to production, exception happens:
line 242, in applyLora state_dict = load_file(lora['path']) File "/usr/local/lib/python3.8/dist-packages/safetensors/torch.py", line 98, in load_file with safe_open(filename, framework="pt", device=device) as f: Exception: Error while deserializing header: HeaderTooLarge
Do you know what might be the cause?

NVM, the safetensor file wasn't completely downloaded with git lfs install, now it's fixed


Determine if we can add a "note" to citations for JOSS

A couple of our citations require notes (like "accepted, to be published after delayed conference takes place"). Brandon's thesis also needs a note since the full text won't be published for a while.

@blthayer I managed to be able to add footnote. If you have not done this, I am happy to work on this. I did the same thing for the equal contribution footnote.

@mzy2240 - thank you! I'll look into this a bit tomorrow. What I'm going for, is with some citation managers you can add a "note" field to a BibTex entry. That field then shows up in the citation. I recently wrote a LaTex document where I added a "note" to my thesis indicating the full text won't be publicly available until 2022, and the note showed up in the references. However, with JOSS, it appears the "note" field doesn't render in the References. Does that make sense?

Haha, I am actually looking for the same thing, but with no luck so far. So my solution is, adding the note directly in the markdown file, and it looks ok to me. Here is the snapshot:

But what I did for the equal contribution footnote involves more hack. What I did is to have a latex.template that can be used by the Pandoc and then it can auto-detect whether the author information has additional fields. I will update very soon once I verify the syle is the same as the JOSS uses.

@mzy2240 - did you find any JOSS documentation noting that we can tweak their template like that?

I'm going to close this for now, as @mzy2240 found a workable solution.


Cooling duty started before beer

I just started the beer in the past 10 minutes, but the "LCD panel" shows it's been cooling for 2+ hours.  I'm certain I turned off the controller after the last beer.

Running latest Dev branch from 3/12.
\Greg

Ah, hm. I have no idea.
The "Cooling for" text is read off the controller, so that would indicate the controller thought it was set to cool for 2 hours.

Weird.
\\ Greg

From: John @.>
Sent: Saturday, March 20, 2021 7:20:03 PM
To: thorrak/fermentrack @.>
Cc: uSlackr @.>; Author @.>
Subject: Re: [thorrak/fermentrack] Cooling duty started before beer (#614)
Ah, hm. I have no idea.
The "Cooling for" text is read off the controller, so that would indicate the controller thought it was set to cool for 2 hours.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fthorrak%2Ffermentrack%2Fissues%2F614%23issuecomment-803477356&data=04|01||44e8d5a3b65d4a83b92d08d8ebf6b213|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637518792063922430|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=8DBtojahUN0X78qu6AlMau2liubtjqmnZh6yaB5j9lY%3D&reserved=0, or unsubscribehttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAGEO6Z6F5LCFM4O5V7CYVG3TEUUSHANCNFSM4ZQV4AIQ&data=04|01||44e8d5a3b65d4a83b92d08d8ebf6b213|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637518792063932425|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=T6nnvH3PC%2BuXRsNkwjSZ9MG3tN9UKlGmAbNH4SvsHTc%3D&reserved=0.

Interestingly enough, @lbussy ran into a similar issue where he was seeing a time improperly printed over the temperature control text that is supposed to appear when the controller is off:

There appears to be a strange condition that can be triggered when the mode is set to "Off" where the text associated with the "off" mode doesn't get properly applied resulting in strangeness on the LCD. The bug is pretty straightforward - a missing else - but as the impact is purely cosmetic, I'm going to leave it queued up for a future release.
I raised the issue on the BrewPi-ESP8266 repo here to track against:
https://github.com/thorrak/brewpi-esp8266/issues/61


chore: fix fixable CVE in frontend

Description

How to test

Screenshots

Notes for developers and reviewers:

Think to update CHANGELOG.md before merge if needed !

/e2e --tests mnist,frontend

End to end tests: :hourglass_flowing_sand: STARTING


HIVE-23772. Reallocate calcite-core to prevent NoSuchFiledError.

https://issues.apache.org/jira/browse/HIVE-23772

Have updated itest as well, which caused the compilation to fail.

yeah; now I remember - I've also reached these avatica exceptions; the story behind them is:

jdbc driver is used to open the connection; it passes some things as arguments to the jdbc driver
the typefactory is "org.calcite...""
the expected type factory is "shaded.org.calcite"
so it fails with an exception...

The values passed are from :
https://github.com/apache/calcite/blob/branch-1.21/core/src/main/java/org/apache/calcite/jdbc/CalciteConnectionImpl.java#L127
The type factory must be null since it is the else part.
The trace says its L127 -
at org.apache.calcite.jdbc.CalciteConnectionImpl.<init>(CalciteConnectionImpl.java:127
and both argument ideally should be from calcite-core hence should have got relocated, they are further tweaked at calcite-avatica only, may be some dependency which uses calcite-core is called, Need to find, For that need to clone and get the dependency tree and stuff, or debug where the signature got changed from shaded to non shaded.
Will find time to dig in more may be this or next weekend for this. Do let me know if you have any further pointers.

iirc the point where the switch to the "non-shaded calcite-core" happens is when the jdbc driver is loaded

The assertion error is due to the fact both shaded and non shaded jars are there in classpath.
	at org.apache.calcite.avatica.AvaticaUtils.instantiatePlugin(AvaticaUtils.java:229) ~[avatica-1.12.0.jar:1.12.0]
	at org.apache.calcite.avatica.ConnectionConfigImpl$5.apply(ConnectionConfigImpl.java:392) ~[avatica-1.12.0.jar:1.12.0]
	at org.apache.calcite.avatica.ConnectionConfigImpl$PropEnv.get_(ConnectionConfigImpl.java:173) ~[avatica-1.12.0.jar:1.12.0]
	at org.apache.calcite.avatica.ConnectionConfigImpl$PropEnv.getPlugin(ConnectionConfigImpl.java:296) ~[avatica-1.12.0.jar:1.12.0]
	at org.apache.calcite.avatica.ConnectionConfigImpl$PropEnv.getPlugin(ConnectionConfigImpl.java:282) ~[avatica-1.12.0.jar:1.12.0]
	at org.apache.calcite.config.CalciteConnectionConfigImpl.typeSystem(CalciteConnectionConfigImpl.java:155) ~[calcite-core-1.21.0.jar:1.21.0]
	at org.apache.calcite.jdbc.CalciteConnectionImpl.<init>(CalciteConnectionImpl.java:127) ~[calcite-core-1.21.0.jar:1.21.0]
	at org.apache.calcite.jdbc.CalciteJdbc41Factory$CalciteJdbc41Connection.<init>(CalciteJdbc41Factory.java:115) ~[calcite-core-1.21.0.jar:1.21.0]
	at org.apache.calcite.jdbc.CalciteJdbc41Factory.newConnection(CalciteJdbc41Factory.java:59) ~[calcite-core-1.21.0.jar:1.21.0]
	at org.apache.calcite.jdbc.CalciteJdbc41Factory.newConnection(CalciteJdbc41Factory.java:44) ~[calcite-core-1.21.0.jar:1.21.0]
	at org.apache.calcite.jdbc.CalciteFactory.newConnection(CalciteFactory.java:53) ~[calcite-core-1.21.0.jar:1.21.0]
	at org.apache.calcite.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:138) ~[avatica-1.12.0.jar:1.12.0]
	at java.sql.DriverManager.getConnection(DriverManager.java:664) ~[?:1.8.0_181]
	at java.sql.DriverManager.getConnection(DriverManager.java:208) ~[?:1.8.0_181]
	at org.apache.hive.org.apache.calcite.tools.Frameworks.withPrepare(Frameworks.java:175) ~[hive-exec-4.0.0-SNAPSHOT.jar:4.0.0-SNAPSHOT]
	at org.apache.hive.org.apache.calcite.tools.Frameworks.withPlanner(Frameworks.java:125) ~[hive-exec-4.0.0-SNAPSHOT.jar:4.0.0-SNAPSHOT]
	at org.apache.hadoop.hive.ql.parse.CalcitePlanner.logicalPlan(CalcitePlanner.java:1555) ~[hive-exec-4.0.0-SNAPSHOT.jar:?]
	at org.apache.hadoop.hive.ql.parse.CalcitePlanner.genOPTree(CalcitePlanner.java:540) ~[hive-exec-4.0.0-SNAPSHOT.jar:?]

Post at java.sql.DriverManager.getConnection(DriverManager.java:664) ~[?:1.8.0_181] rather than coming back to hive-exec it goes back to the non shaded jars calcite-core
The driver gets registered with original jar only so it executes call to the non-shaded ones.
Ideally we can remove the original ones for itests??
Removing that takes away that error, but driver registration is done as HiveDriver and while getting connection it wants a jdbc:calcite hard-coded in Framework class so it gets a:
	at java.sql.DriverManager.getConnection(DriverManager.java:689) ~[?:1.8.0_181]
	at java.sql.DriverManager.getConnection(DriverManager.java:208) ~[?:1.8.0_181]
	at org.apache.hive.org.apache.calcite.tools.Frameworks.withPrepare(Frameworks.java:175) ~[hive-exec-4.0.0-SNAPSHOT.jar:4.0.0-SNAPSHOT]```

Is there are configuration or workaround for the driver-connection. If you have any idea, Let me know

Ideally we can remove the original ones for itests??

I think that will not make the problem go away - if someone adds a calcite-core to the classpath this could happen in production setup as well...


Contribution License Agreement

If a contributor changes employers do they need to sign a new Contribution License Agreement?

Seems like the bot new I updated my email and user name so, I went ahead and filled out a new CLA.


depencies are set to hexpm by default

depencies are set to hexpm by default to avoid to research it on a private repository
fix #311

What about when it is published to a specific organization? Or was that already handled and only default hexpm wasn't?

It is handled in my case. The problem is only in public hexpm

@tsloughter @jbdamiano It should just be the repo name, I don't see any examples in hexpm, nor hex_core, nor mix hex where repo:org is used, that makes sense to me since in hex the org is considered a distinct entity from the repo. Since I say "I believe" here, we probably want to double check.
There's one change that needs to be made regardless @jbdamiano, we don't want to hard code "hexpm" here, instead we'll have to provide the parent repo as an argument to get_deps/2 . Around here https://github.com/erlef/rebar3_hex/blob/110f55affe28713f0208cf73cdcc22351f81b704/src/rebar3_hex_build.erl#L324 you can call get_repo/1  (defined in the same module, rebar3_hex_build) to get the repo, we'll then either need to pass in the repo returned to get_deps/1 either whole or just the parent repo name. Passing just the parent makes sense to me I think, so you can match on the parent with #{parent := Parent} = get_repo(State). Then just include that in the requirement. We'll need to update the tests in test/rebar3_hex_app_SUITE.erl along with this change.
Does that make sense?

Oh wait, this is for figuring out the dep information to be part of a package when published? It shouldn't assume the dep is from hexpm.
Is the original issue that when it doesn't set this information the fetching then assumes the dep package is from the same org as the parent?
Could this also be temporarily solved by having it not default to assuming it is from the org the parent is in?

Oh wait, this is for figuring out the dep information to be part of a package when published? It shouldn't assume the dep is from hexpm.

Yeah, I agree. I suppose my thought on this was let's not let perfect be the enemy of good (i.e., currently the case this PR revolves around simply doesn't work and is a highly sought after featrue, I ran into it myself a few weeks ago).

Is the original issue that when it doesn't set this information the fetching then assumes the dep package is from the same org as the parent?

Correct.

Could this also be temporarily solved by having it not default to assuming it is from the org the parent is in?

Yeah, we could brute force work around it by searching all available repos, but there's a gotcha in there. Say I publish package foo 0.1.0 to hexpm and foo 0.1.0 to my own hex server, which one do we pick?
I think ultimately and want I wanted us to avoid was having to make changes in rebar3 in regards to deps and locks. I believe as discussed on slack at one point we need to support one to two things :

Allow the user to specify what dep a repo should come from ala mix ,this includes specifying the org.

Write the repo (not org part) into lock files, this requies a new lock file version, so we'd end up maintaining 3 lock file versions.

I do not want repo in the lock file or rebar.config as part of the dep.
I think we should probably not attempt to treat orgs as repos anymore. They are not repos and acting like they are has caused a lot of pain.
Putting the org in a config with a dep and adding it to the lock file for each dep would then be fine with me.
Should we go ahead and merge this?

I do not want repo in the lock file or rebar.config as part of the dep.

I'm only suggesting this as that's what mix does and it makes sense to me, maybe for rebar it doesn't have to be that way. In other words, if I have a private dep published to myorg on hexpm. The lock file ends up containing [repo: "hexpm:myorg", ..." but let's discuss that further in an another issue.

I think we should probably not attempt to treat orgs as repos anymore. They are not repos and acting like they are has caused a lot of pain.

Agreed.

Putting the org in a config with a dep and adding it to the lock file for each dep would then be fine with me.

👍

Should we go ahead and merge this?

I think it should be fine. It probably shouldn't be hard coded to hexpm, I can fix that up in another PR. I'll need to test all this a good bit before we cut a release.


Question regarding returning the packets back to GWLB

Hi,
I am planning to do a POC with GWLB Endpoints, GWLB, VPC Endpoint, VPC Endpoint Service and DX and was wondering if this project could also re-encapsulate the packets and send it back to the GWLB.
I plan to deploy the GWLB and the gwlbtun in a VPC (let's call it shared-vpc ) and expose it as a VPC Endpoint Service for other spoke VPCs to connect to. The  shared-vpc has a DX to on-prem. Due to historical reasons, we cannot use TGW and VPC peering.
Can we use the same path to route the TCP traffic from the spoke VPCs, through the GWLB, EC2, DX and back to the spoke VPC?

Apologies for the delay in response.
If I'm understanding your question correctly, the answer is that you cannot send flows through GWLB that did not arrive via a GWLB endpoint - this is the nature of GWLB itself.
Let me know if this was it, or if you're curious about some other aspect.  Thanks!

If I'm understanding your question correctly, the answer is that you cannot send flows through GWLB that did not arrive via a GWLB endpoint - this is the nature of GWLB itself.

I'd like to make clear if my understanding of the above sentence is correct. Do you mean that you can not send traffic to a GWLB consumer VPC proactively?
If this is the correct understanding, then how about the case of Network Firewall? Per my knowledge, Network Firewall is based on GWLB, and traffic can be sent proactively through a Network Firewall into a consumer VPC.
This project should provide a feature of a permanent tunnel that allow proactive traffic to be sent into the GWLB consumer VPC.


Table pagination

e.g., https://vis.scrc.uk/plot

What do we want to change about pagination?

Actually currently the page is fetching table data from https://vis.scrc.uk/api/v1/template/pages/all/plot and it takes a time to load all data. Ideally the page should call paginated data using pageIndex and pageSize as query parameter, e.g., https://vis.scrc.uk/api/v1/template/pages/all/plot /?pageIndex=0&pageSize=50 . I don't know how to do that in React.


Winget Cli v. 2 Installs Incorrect Platform Version.

Brief description of your issue
Winget Cli v. 2.2 installs x86 versions on my System Type: x64-based Win 11 Pro (insider) PC.
My rudimentary understanding of the "expected behavior" is that choco selects the install package most appropriate for the system architecture. In my case though, choco is installing x86-based installs by default.
For example, note that winget correctly installs the x64-based package for Azure Functions Core Tools.
PS C:\whatevs> winget install 'Azure Functions Core Tools'
Found Azure Functions Core Tools [Microsoft.Azure.FunctionsCoreTools] Version 4.0.5348
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://github.com/Azure/azure-functions-core-tools/releases/download/4.0.5348/func-cli-4.0.5348-x64.msi
  ██████████████████████████████   207 MB /  207 MB
Successfully verified installer hash
Starting package install...
Successfully installed

By way of contrast, note that choco installs the x86 version of  Azure Functions Core Tools.
choco install azure-functions-core-tools
Chocolatey v2.2.2
Installing the following packages:
azure-functions-core-tools
By installing, you accept licenses for the packages.
Progress: Downloading azure-functions-core-tools 4.0.5348... 100%

azure-functions-core-tools v4.0.5348 [Approved]
azure-functions-core-tools package files install completed. Performing other installation steps.
Downloading azure-functions-core-tools
  from 'https://functionscdn.azureedge.net/public/4.0.5348/Azure.Functions.Cli.win-x<IP_ADDRESS>48.zip'
Progress: 100% - Completed download of C:\Users\who-evs\AppData\Local\Temp\chocolatey\azure-functions-core-tools\4.0.5348\Azure.Functions.Cli.win-x<IP_ADDRESS>48.zip (233.9 MB).
Download of Azure.Functions.Cli.win-x<IP_ADDRESS>48.zip (233.9 MB) completed.
Hashes match.
Extracting C:\Users\who-evs\AppData\Local\Temp\chocolatey\azure-functions-core-tools\4.0.5348\Azure.Functions.Cli.win-x<IP_ADDRESS>48.zip to C:\ProgramData\chocolatey\lib\azure-functions-core-tools\tools...
C:\ProgramData\chocolatey\lib\azure-functions-core-tools\tools

What am I missing here?
System Information
OS Name	Microsoft Windows 11 Pro Insider Preview
Version	10.0.23545 Build 23545
Other OS Description 	Not Available
OS Manufacturer	Microsoft Corporation
System Name	DESKTOP-WHATEVS
System Manufacturer	Dell Inc.
System Model	Precision 3571
System Type	x64-based PC
System SKU	0B10
Processor	12th Gen Intel(R) Core(TM) i7-12800H, 2400 Mhz, 14 Core(s), 20 Logical Processor(s)
BIOS Version/Date	Dell Inc. 1.17.1, 8/28/2023
SMBIOS Version	3.4
Embedded Controller Version	255.255
BIOS Mode	UEFI
BaseBoard Manufacturer	Dell Inc.
BaseBoard Product	07K1M2
BaseBoard Version	A00
Platform Role	Mobile
Secure Boot State	On
PCR7 Configuration	Elevation Required to View
Windows Directory	C:\WINDOWS
System Directory	C:\WINDOWS\system32
Boot Device	\Device\HarddiskVolume1
Locale	United States
Hardware Abstraction Layer	Version = "10.0.23545.1000"
  User Name	DESKTOP-WHATEVS\who-evs
Time Zone	Eastern Daylight Time
Installed Physical Memory (RAM)	64.0 GB
Total Physical Memory	63.7 GB
Available Physical Memory	34.9 GB
Total Virtual Memory	67.7 GB
Available Virtual Memory	29.2 GB
Page File Space	4.00 GB
Page File	C:\pagefile.sys
Kernel DMA Protection	On
Virtualization-based security	Running
Virtualization-based security Required Security Properties
Virtualization-based security Available Security Properties	Base Virtualization Support, Secure Boot, DMA Protection, UEFI Code Readonly, SMM Security Mitigations 1.0, Mode Based Execution Control, APIC Virtualization
Virtualization-based security Services Configured
Virtualization-based security Services Running	Credential Guard
Windows Defender Application Control policy	Enforced
Windows Defender Application Control user mode policy	Off
Device Encryption Support	Elevation Required to View
A hypervisor has been detected. Features required for Hyper-V will not be displayed.

Steps to reproduce
Install via chocolatey cli e.g.: choco install package-what-evs.
Expected behavior
I expect chocolatey to respect the x64 architecture of my box and install x64 packages by default.
Actual behavior
chocolatey does not respect the x64 architecture of my box and installs x86 packages.
Environment
PS C:\what-evs> winget --info
Windows Package Manager (Preview) v1.7.2491-preview
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.23545.1000
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.22.2491.0

Winget Directories
-------------------------------------------------------------------------------------------------------------------------------
Logs                               %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir
User Settings                      %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
Portable Links Directory (User)    %LOCALAPPDATA%\Microsoft\WinGet\Links
Portable Links Directory (Machine) C:\Program Files\WinGet\Links
Portable Package Root (User)       %LOCALAPPDATA%\Microsoft\WinGet\Packages
Portable Package Root              C:\Program Files\WinGet\Packages
Portable Package Root (x86)        C:\Program Files (x86)\WinGet\Packages
Installer Downloads                %USERPROFILE%\Downloads

Links
---------------------------------------------------------------------------
Privacy Statement   https://aka.ms/winget-privacy
License Agreement   https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage            https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale

Admin Setting                             State
--------------------------------------------------
LocalManifestFiles                        Disabled
BypassCertificatePinningForMicrosoftStore Disabled
InstallerHashOverride                     Disabled
LocalArchiveMalwareScanOverride           Disabled

This.....isn't the repo for chocolatey. It's for winget. If you have a issue with chocolatey, you need to take it over to their repo.

I think this would most likely be handled by: https://github.com/chocolatey/choco

@Masamune3210 and @denelon,
Yup, you are right. Apologies.


Migration: Jenkins -> Semaphore

Action required after merging
You will need to run service-bot and merge the PR it creates. See the instructions
If applicable, apply these changes to release branches
Changes
This PR is the first step in migrating this repo from Jenkins to Semaphore.
Once you see things are running smoothly on Semaphore for this repo, open a follow-up PR to delete the Jenkinsfile.
This PR does two things:

Disables jenkins deploy.
Sets up cc-service-bot to create a semaphore.yaml. -> Expect a PR from service-bot.

Why are we migrating?
Read the background and motivation
Please merge this PR ASAP because we plan on shutting down Jenkins by the end of the year.

Failed due to unrelated dependency error
Will merge this.


command don't account for empty base64 strings

run L2Jpbi9zbGVlcA==  dGVzdD10cnVl should work and parse down to, quotes excluded:
path: "/bin/sleep"
args: ""
env: "test=true"
However, it parsed as:
path: "/bin/sleep"
args: "test=true"
env: missing
And throws an invalid command error

fixed the title but not the description


Empy Scene (.j3o) not working

See http://hub.jmonkeyengine.org/t/jmonkeyengine-3-1-alpha-3-released/35328/9
Either it's because we are writing an incomplete file or because the BinaryInputCapsule just can't handle empty files.

So it turns out that this action is simply taking the file from jme3-scenecomposer/src/.../Scene.j3o
The Investigation shows that the crash occurs when trying to read the Scale:
scale.set((Vector3f)capsule.readSavable("scale", Vector3f.UNIT_XYZ));
Does anyone know if this Scene.j3o could still be a 3.0 thing which is broken now?
Anyhow this shouldn't lead to such an issue, I'd say?
cObj.aliasFields.get(alias).type; one of those is null.

There are no problems opening the Scene.j3o (from the sdk sources, copied & pasted) The problem seem to happen at the creation of the new file, few bytes are different .

this problem already occurs at :
50c9d4200283f7576f7bf72622903c16d68fd87c
3c32355c3508a34ae6f538d4cfc1d5c40e9ed7e2

It doesn't here: https://github.com/jMonkeyEngine/jmonkeyengine/commit/f4098ce89cc65b381906cf3859d17281b264c313
That's before the split and all but it's only 15 days ago, so it might be NB8.1 breaking.
Normen suggested this:

j3o is the only binary file we add, maybe thats the issue? Maybe theres some new flag for binary files? Text files don't have the issue I suppose?
You could try fpp files, that should be a binary as well
If they're broken too then its probably a NB issue
"New Filter" and then try to open it on a scene

Doing that I noticed something different:
You actually CAN add filters (so they are displayed in SceneComposer), but you cannot see them in the FilterExplorer. Probably because of the change you did?
java.lang.NullPointerException
	at com.jme3.gde.core.filters.impl.JmeFilter.getExplorerObjectClass(JmeFilter.java:79)
	at com.jme3.gde.core.filters.FilterPostProcessorNode$FilterChildren.createNodes(FilterPostProcessorNode.java:238)
	at org.openide.nodes.Children$Keys$KE.nodes(Children.java:1679)
[catch] at org.openide.nodes.ChildrenArray.nodesFor(ChildrenArray.java:149)
	at org.openide.nodes.EntrySupportDefault$Info.nodes(EntrySupportDefault.java:805)
	at org.openide.nodes.EntrySupportDefault.updateAdd(EntrySupportDefault.java:441)
	at org.openide.nodes.EntrySupportDefault.setEntries(EntrySupportDefault.java:295)
	at org.openide.nodes.EntrySupport.setEntries(EntrySupport.java:83)
	at org.openide.nodes.Children$Keys$2.run(Children.java:1573)
	at org.netbeans.modules.openide.util.DefaultMutexImplementation$1Exec.run(DefaultMutexImplementation.java:1016)
	at org.openide.nodes.Children$ProjectManagerDeadlockDetector.execute(Children.java:1938)
	at org.netbeans.modules.openide.util.DefaultMutexImplementation.postRequest(DefaultMutexImplementation.java:1022)
	at org.netbeans.modules.openide.util.DefaultMutexImplementation.postRequest(DefaultMutexImplementation.java:985)
	at org.netbeans.modules.openide.util.DefaultMutexImplementation.postWriteRequest(DefaultMutexImplementation.java:356)
	at org.openide.util.Mutex.postWriteRequest(Mutex.java:388)
	at org.openide.nodes.Children$Keys.applyKeys(Children.java:1582)
	at org.openide.nodes.Children$Keys.setKeys(Children.java:1526)
	at com.jme3.gde.core.filters.FilterPostProcessorNode$FilterChildren.addNotify(FilterPostProcessorNode.java:198)
	at com.jme3.gde.core.filters.FilterPostProcessorNode$2.run(FilterPostProcessorNode.java:127)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:749)
	at java.awt.EventQueue.access$500(EventQueue.java:97)

Found another hint!
http://www.fileformat.info/info/unicode/char/0fffd/index.htm
-> Netbeans replaces some non-UTF-8 chars with 0xEF 0xBF 0xBD (efbfbd) since that's the Sequence for the linked Replacement Character (We it's unable to convert the input byte)

good job @MeFisto94  looks nice.


Display a checkerboard pattern on the fallback 3D material

Marked as draft, as this currently affects the Display Lighting debug draw mode. This debug draw mode should be modified to use a different, untextured fallback material.
This has two benefits over a plain untextured surface:

It looks better, and gives a better first impression of the engine's visuals.

As a bonus, the checkerboard pattern helps make color banding and shadow dithering patterns less noticeable (closer to how it'd be in most finished projects).

It has better usability, as the checkerboard gives you a sense of scale.

This shader is based on @CptPotato's procedural checker shader.
This closes https://github.com/godotengine/godot-proposals/issues/6138.
Testing project: test_fallback_material.zip
Preview
Daytime

Current fallback material
With checkerboard material

Nighttime

Current fallback material
With checkerboard material

Cool to see the checkerboard shader getting some use :+1:

Closing, as I discussed a different (and less invasive) approach with reduz: https://github.com/godotengine/godot-proposals/issues/6138#issuecomment-1413703862


Can it support paging3 data？

Hi 👋
I am afraid it is not possible right now.
The PageCurlState has max defined as a property, thus when Paging3 loads a new page with data the new PageCurlState must be created with different max value. I have created a small PoC, where max is defined as lambda, which returns Int as max value and it kinda works. But I have to test it properly and then I could implement it in some release.

Thank you.
Perhaps refer to LazyListState? By remembering the position through keys, the existing UI state can still be maintained when the data is updated. Supporting paging will make the component more practical. In practical applications, there are far more dynamic paging data scenarios than fixed data scenarios.

Perhaps refer to LazyListState

I would say PageCurl is more like a Pager from foundation than LazyLayout. That's also why I changed API a little bit and now count of pages is now defined via count argument in PageCurl composable instead of max argument in rememberPageCurlState method.
See changes in #10

Supporting paging

With that change it is now possible 🥳
See demo example:
https://github.com/oleksandrbalan/pagecurl/blob/main/demo/src/main/kotlin/eu/wewox/pagecurl/screens/PagingPageCurlScreen.kt
Also you could try it yourself in freshly released 1.2.0 version:
https://github.com/oleksandrbalan/pagecurl/releases/tag/v1.2.0

Hi，I just tried it and now PageCurl already supports Paging pagination. However, due to my slightly complex use case, it doesn't work very well. The scenario is as follows: the data starts from a recorded page number, such as 4, and then Paging will automatically read the third page. But this will cause PageCurl to refresh, and PageCurl seems unable to remember and restore the position by key like Pager does, so when data is inserted ahead, it scrolls to position 0 instead of maintaining the current position. Do you have any good suggestions for this?

Hmm, I do not think I clearly understand the problem 🤔
Could you please provide some small reproduction example or maybe a video of such behavior?

Oh, I see, thx 👀
I will check how this could be fixed 🤔

@choristery I have added a new PageCurl override with "key" lambda in feature/keys branch: https://github.com/oleksandrbalan/pagecurl/pull/12
Could you please check if it will work in your case?

Hi, I've tried it, and it works fine now. However, at present, there will be a particularly obvious flickering phenomenon when turning pages when there are many contents. Can it be solved?
I uploaded a video：YouTube

Cool cool, thx for testing 👍
If I understand correctly it's because you have used a newer compose version. So I have published a new library version 1.3.0 with a key lambda support and a fix for newest compose (BOM 2023.03.00).
https://github.com/oleksandrbalan/pagecurl/releases/tag/v1.3.0
Could you check it if it fixes that flickering? 🙏

I've confirmed that it's working fine now, both repositioning and page flip animations. 🙏


Rename "standalone" to "hotpot" to avoid confusion

I suggest renaming "standalone" to "hotpot".  Otherwise it can be confused with "cinder standalone".

@BaiHuoYu Please take a look

@xing-yang I think hotpot_only could be a better choice : )

Sure:)


update README with complete sim example

Codecov Report

Merging #84 (e5357ce) into master (13f993b) will increase coverage by 0.21%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #84      +/-   ##
==========================================
+ Coverage   97.09%   97.30%   +0.21%
==========================================
  Files          11       11
  Lines        1409     1409
==========================================
+ Hits         1368     1371       +3
+ Misses         41       38       -3

Impacted Files
Coverage Δ

pyminion/game.py
98.46% <0.00%> (ø)

pyminion/players.py
95.81% <0.00%> (+0.46%)
:arrow_up:

pyminion/bots/bot.py
96.25% <0.00%> (+2.50%)
: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 13f993b...e5357ce. Read the comment docs.


Use the new screen component on the about you screen.

Description
This branch turned out to be mainly refactors after looking at the legacy code. The biggest refactors are:

type rename Profile -> TProfile
removed property navigation from BackButton and Screen and PatientHeader components
made the component ProgressHeader to make the code more dry

https://www.notion.so/joinzoe/Review-all-screens-on-Tablets-9f91fa0af45e45b09fa9b2a794cb3685
On what platform have you tested the change?

[ ] Android - Emulator
[ ] Android - Physical device
[ ] iOS - Emulator
[ ] iOS - Physical device

Screenshots
Before:

After:

Checklist (for submission)

[ ] Analytics/tracking events have been added (if relevant)
[ ] Added new screen(s) to src/features/screens.ts and new Redux slice(s) to mocks/mockedInitialState.ts (if relevant)

Checklist (for reviewers)

[ ] Checked against Figma designs (if relevant)
[ ] Checked that data has been successfully saved to the backend (if relevant)

Out of scope and potential follow-up

This is mega work, nice one Aike! I didn't pull down and test due to merge conflict, but feels like we need to do another big proper once over QA on the app when ready. 🙃