Read receipt support & logging of self messages

    Major additions to database driver (currently mysql only) to track metadata about messages.
    This currently allows us to support facebook read receipts on messages (will appear as eye emoji on the latest message they have seen)
    This also allows us to turn on self-events, this allows for logging into the slack channel messages sent by the facebook user on other devices.
    In the future this would allow for playing catch-up when disconnected from slack or facebook on a thread as we can figure out what messages we have or have not already taken care of.

This was a bit painful to do with all the code reformatting at the same time but 3rd rebase for the win:)

If this is desired let me know and I will try to add pg support as well.  For local file support would just not-support this for now.


⚠ SolarOscp has degraded performance

In 8614cbe, SolarOscp ($SOLAROSCP_URL) experienced degraded performance:

HTTP code: 200
Response time: 391 ms

Resolved: SolarOscp performance has improved in 6ebd470 after 23 minutes.


Suggestion: GIF Frame Exporter

Is your feature request related to a problem? Please describe.
Ability to split an animated gif into component frames would be useful
Describe the solution you'd like
A tool that allows selecting a gif and outputs a grid of thumbnails for each frame, allowing single frames to be saved or all to be exported at once to a folder/zip
Describe alternatives you've considered
Continuing to use https://ezgif.com/split/ezgif-3-b5246d096f.gif
Additional context
https://codingvision.net/c-get-frames-from-a-gif

This can already be achieved using https://www.screentogif.com/ It has a GIF editor, without having to record something from the screen first.


feat(core): CW-20040 update core dependency issue

Checklist:

README.md includes:

[ ] The details of signing data and transaction data, this includes parameters.
[ ] Official docs or white paper.
[ ] Website or api can query assets and broadcast transaction.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

Task linked: CW-20040 [P1] 無法發送 ETC


Fix/has pending gas price

Pull Request Test Coverage Report for Build 1095

6 of 6 (100.0%)  changed or added relevant lines in 1 file are covered.
13 unchanged lines in 2 files lost coverage.
Overall coverage increased (+1.0%) to 83.638%

Files with Coverage Reduction
New Missed Lines
%

src/EconomicStrategy/EconomicStrategyHelpers.ts
1
96.0%

src/Actions/Pending.ts
12
72.8%

Totals

Change from base Build 1091:
1.0%

Covered Lines:
630

Relevant Lines:
725

💛  - Coveralls


Vulnerability issue with V3.12.0

@pnp/spfx-controls-react V3.12.0 has below Critical/High severity vulnerability issues
CVE-2022-37601 - Prototype pollution vulnerability in function parseQuery in parseQuery.js in webpack loader-utils prior to version 2.0.3 via the name variable in parseQuery.js.
CVE-2022-46175
CVE-2022-37599
CVE-2022-37603
Recommendation:
Upgrade loader-utils from 1.1.0 to 1.4.2 to fix the vulnerability.
json5 vulnerability is patched in  v2.2.2 and later
Can you please upgrade the package.
[] Bug

@mmohamedbasith many thanks for raising this issue. It doesn't seem to be related to direct dependencies of the project, so likely part of another dependency or part of SPFx. The SPFx team at MS is already aware of this and let's hope that we get an update as part of a future release that fixes it.
Can I ask if you are able to validate if testing an empty SPFx project gives you the same vulnerabilities?

as @joelfmrodrigues mentioned, the vulnerability is in SPFx dependencies. Nothing we can do until the new version is released.
From other side, this is a build-time dependency. So, the vulnerability is not critical in that case.


Add support for other gestures

Adding support for other gestures such as double tap + swipe up/down, two finger swipe ups etc would add more customizability. Might be feature-creep though? Having four gesture-actions available on the homescreen should be enough for most cases (five if I implement a simple double-tap gesture). I don't think there are enough possible actions (unless you add lots of app shortcuts).

combined with #85


Autocomplete login acts funny.

From @bryanhelmig on July 14, 2017 22:21
When I type<EMAIL_ADDRESS>as my email, it autocompletes @zeit.co, but then adds the eit.co to the end of the address after I complete finishing our domain.
➜  ~ now login
> Enter your email<EMAIL_ADDRESS>
If the ^ carrot is me pushing enter, it visually parses to something like this<EMAIL_ADDRESS>Copied from original issue: zeit/now#23

From @rauchg on July 14, 2017 23:53
Sounds like an issue in https://github.com/zeit/email-prompt, for whoever wants to take a look!


Nested drag doesn't work as expected

In case when we have nested draggable elements, drag of child causes drag of all the draggable parents. See attached demo.
dragNested.html.zip

Closed by #22.


KYLIN-3265 Add jobSearchMode as a filter condition for jobs UI part

Signed-off-by: chenzhx<EMAIL_ADDRESS>

Can one of the admins verify this patch?

Codecov Report

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

@@             Coverage Diff              @@
##             master     #109      +/-   ##
============================================
- Coverage     21.47%   21.45%   -0.03%
+ Complexity     3822     3817       -5
============================================
  Files           992      992
  Lines         59742    59742
  Branches       8639     8639
============================================
- Hits          12830    12815      -15
- Misses        45732    45747      +15
  Partials       1180     1180

Impacted Files
Coverage Δ
Complexity Δ

...e/kylin/common/KylinConfigCannotInitException.java
0% <0%> (-100%)
0% <0%> (-1%)

...main/java/org/apache/kylin/common/KylinConfig.java
30.67% <0%> (-1.69%)
20% <0%> (-1%)

.../java/org/apache/kylin/common/KylinConfigBase.java
14.98% <0%> (-1.24%)
35% <0%> (-2%)

...a/org/apache/kylin/dict/Number2BytesConverter.java
81.74% <0%> (-0.8%)
17% <0%> (-1%)

...rg/apache/kylin/cube/inmemcubing/MemDiskStore.java
69.6% <0%> (-0.61%)
7% <0%> (ø)

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 76934db...31cc006. Read the comment docs.

Pull Request Test Coverage Report for Build 3009

0 of 0 (NaN%) changed or added relevant lines in 0 files are covered.
15 unchanged lines in 4 files lost coverage.
Overall coverage decreased (-0.03%) to 23.429%

Files with Coverage Reduction
New Missed Lines
%

core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/MemDiskStore.java
1
78.12%

core-common/src/main/java/org/apache/kylin/common/KylinConfigCannotInitException.java
2
0.0%

core-common/src/main/java/org/apache/kylin/common/KylinConfig.java
4
33.19%

core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
8
16.22%

Totals

Change from base Build 3006:
-0.03%

Covered Lines:
13997

Relevant Lines:
59742

💛  - Coveralls


[Bug] pulsarctl library does not have any option of backlog type option.

Search before asking

[X] I searched in the issues and found nothing similar.

Version
v<IP_ADDRESS>
https://github.com/streamnative/pulsarctl/releases/download/v<IP_ADDRESS>/pulsarctl-amd64-linux.tar.gz
Minimal reproduce step
/home/pulsar/pulsarctl-amd64-linux/pulsarctl namespaces set-backlog-quota --limit-size 1G --limit-time  3600 type "message age" --policy producer_request_hold <namespace_name> --token  --admin-service-url  --tls-allow-insecure
What did you expect to see?
Backlog has to set with the corresponding topic.
What did you see instead?

Anything else?
No response
Are you willing to submit a PR?

[ ] I'm willing to submit a PR!

Refer https://github.com/streamnative/pulsarctl

https://github.com/streamnative/pulsarctl/issues/914

Closed as superseded by https://github.com/streamnative/pulsarctl/issues/914.


Make a similar form in Hindi Language

I am a Lgm-Soc'21 participant
When we click on the hindi option the page still remains in English language so my idea is to create a similar page in hindi language as hindiindex.html and link that html file to the hindi option using anchor tag so when a user clicks on hindi the same page will appear in hindi language although it would be a tedious task but I would like to take up this challenge
Please assign this issue to me @QAZIMAAZARSHAD sir I an a LGM-SOC'21 Participant

@Vedant-Jayesh-Oza this issue is already open see issue number https://github.com/QAZIMAAZARSHAD/Voters-Registration-Portal/issues/1


Quora's Answer Composition Box BG Not Changing

I am running a full-black/dark theme, yet when I click on the 'Answer Question' button on a Quora.com question, the text box shown does not have its background themed. I've included a picture for reference. Oddly, the text I put in the text box does get themed, showing in my light hacker green, making the text practically invisible against the white background.
I've noticed this phenomenon on multiple sites actually, so it is not exclusive to Quora. Please resolve this for a more consistent and pleasant experience with your extension. It's troubling to work with arbitrary blocks of white showing up on pages, and I feel they are all connected to the same bug. If you resolve one, you'd probably resolve them all in the process.

This case is not a Midnight Lizard's bug.
The problem is that quora does fight with Midnight Lizard and constantly changes background back to white.
It was causing infinite loop and crashing browser so I added this text block into ignore list a long time ago.
Today's Midnight Lizard is much smarter and wouldn't crash even without ignoring this block, but it still cannot win the fight (since it is smarter it gives up after a few rounds).
I've just implemented a workaround for this concrete text block which manually sets a background color with high precedence and wins without fight:

But it will fix just this problem and won't anything else. I will publish an update soon.
Closing the issue by now.
If you would have any other examples please add a comment here or create a new issue.
Thank you.

I am impressed with the immediate response and resolution :D
Thank you for fixing this. Even if it is a janky, forced, singular solution, it's better to have it, I think. I'll probably come back to this thread to notify you of other white background anomalies in the future.

Found another. On the Google Play Store, play.google.com, if I click on the 'Install' button for an app, the resulting popup for device selection has a white background. Please override this one as well.

This is a Firefox bug. Sometimes Firefox does not compute styles at all.
I have a workaround for this bug - if Firefox does not know what color is used - I assume it is transparent.
It works somehow most of the times - but not for this case since in reality it is not transparent but white.

Sooo....nothing can be done about this one?


Only use read Pipe when running on Http2.

Fixes https://github.com/aspnet/Benchmarks/issues/1202
Before:
RequestsPerSecond:           2,949
Max CPU (%):                 39
WorkingSet (MB):             398
Avg. Latency (ms):           4.69
Startup (ms):                365
First Request (ms):          130.45
Latency (ms):                3.69
Total Requests:              44,517
Duration: (ms)               15,100
Socket Errors:               256
Bad Responses:               0
SDK:                         5.0.100-alpha1-013616
Runtime:                     3.0.0-preview8-28373-17
ASP.NET Core:                3.0.0-preview8.19379.2

After:
RequestsPerSecond:           13,967
Max CPU (%):                 33
WorkingSet (MB):             398
Avg. Latency (ms):           0.45
Startup (ms):                384
First Request (ms):          145.79
Latency (ms):                3.69
Total Requests:              210,555
Duration: (ms)               15,080
Socket Errors:               0
Bad Responses:               0
SDK:                         5.0.100-alpha1-013616
Runtime:                     3.0.0-preview8-28373-17
ASP.NET Core:                3.0.0-preview8.19379.2

Also note that Http2 perf didn't regress either:
Before:
RequestsPerSecond:           378,473
Max CPU (%):                 58
WorkingSet (MB):             685
Avg. Latency (ms):           11.12
Startup (ms):                263
First Request (ms):          196.98
Latency (ms):                0.14
Total Requests:              5,677,089
Duration: (ms)               15,000
Socket Errors:               0
Bad Responses:               0
SDK:                         5.0.100-alpha1-013616
Runtime:                     3.0.0-preview8-28373-17
ASP.NET Core:                3.0.0-preview8.19379.2

After:
RequestsPerSecond:           375,879
Max CPU (%):                 56
WorkingSet (MB):             658
Avg. Latency (ms):           10.16
Startup (ms):                263
First Request (ms):          209.08
Latency (ms):                0.13
Total Requests:              5,638,184
Duration: (ms)               15,000
Socket Errors:               0
Bad Responses:               0
SDK:                         5.0.100-alpha1-013616
Runtime:                     3.0.0-preview8-28373-17
ASP.NET Core:                3.0.0-preview8.19379.2

Note, there is a discrepancy between what benchmarks reports for connection close (8k vs 7.6k), however, I believe that difference is due to publishing standalone vs publishing portable. I've consistently seen worse numbers when running a standalone publish (which you do by default uploading your own files).

All yours @halter73

I'll take that as an approval <_<

cc @sebastienros

Tactics approved


1/48 shutter speed

It would be greate to have an option to shoot with 1/48 shutter speed in 24fps

I think that that isn't possible because with the OpenMemories-Framework you can only write apps but not change the camera's firmware.
And I also think that the difference between 1/50 and 1/48 is noticeable.

It is noticeable) But for me it is more important now to have an opportunity to shoot in 3:2 or 4:3 4K.


Log issuing all events in one place

When checking for the ManualCommit in the logs I noticed that there are still quite a few events where we don't have thepeer_id available. For overall better logs I suggest to...
Stop logging events in the model all over the place and created on dedicated way to log all events.
This helps with following the history of a cfd and enhance the logs with further information in a structured way (e.g. log the peer_id for all events issued).
Given that we want to log most events on info, but some on warn and error we distinguish by event kind.

bors r+


Add Discord widget to site

Replace the smoking banny with a Discord support widget.
https://www.online-tech-tips.com/web-site-tips/how-to-add-a-discord-widget-to-your-website/

@wraeth-eth closing this for now.


Bookstore: Use Redux in React components

In this feature, I:

[x]  Integrated Redux login into React App using react-redux library
[x] Imported Provider with the configureStore and used it in main component
[x] Displayed list of books from Redux Store
[x] Added new book / Remove / Show Categories status using useDispatch with action

@FrederickMih Thank you for the suggestions. Please try to focus on the project requirement more than the content, My linters are passing + Readme file sections are empty because the project is not finished yet, and I'm planning to finish once I have an idea how this project about and its features. If you have optional suggestion like filling readme file, please use [optional] comment for that.
Thanks for understanding. 👍

@prolajumokeoni you guys must be trolling right? How I'm supposed to know the potential future features? Also there is a concept called DRY. SO INSTEAD OF REPEATING AND CHANGING README FILE EVERY SINGLE TIME IN EVERY SINGLE FEATURE. I will change it once I finish the project. and Readme File are meant for people who want to use my project and it's mostly filled once the whole project is finished!. Thanks

@mirouhml Thank you for mentioning that, I gave the completion status a default value of 0% and the chapter a default value of 'Chapter 1' whenever a book is added.

@wassimchakib good to know, best of luck with your next projects!


The same Olivier

Are you the same Olivier as the one who put out a 3-version theme 1-2 years ago?

Yes you are, I just noticed your surname at the bottom of this page.
Welcome back 😀


Update deprecated db.request to db.fetch

Fixed /auth route errors

Hey @maxcodefaster , thanks for submitting this!  Kind of shocking how fast the JS ecosystem moves, because this definitely worked earlier in the year.  Thanks again for the update.


Kmdoc1

I created an Integration.md documentation that outlines in detail how to set up VueJS with mojo.js using vite. In addition, I added a Cookbook section that outlines using the npm module argon2 for salted hash password encryption.

Thank you for the writeups. The topics are a bit out of scope for the core docs though. They might be better suited for the wiki.

I've prepared the wiki for contributions like this now.


Rework image pull check in E2E tests

How to categorize this PR?

/area testing
/kind test
What this PR does / why we need it:
Rework the image pull check in E2E tests.
The image pull check now use root pod executor and runs the following commands on the Node where the registry Pod is running:

jq -j '.mounts[] | select(.destination=="/var/lib/registry") | .source' /run/containerd/io.containerd.runtime.v2.task/k8s.io/<registry-container-id>/config.json to get the location of '/var/lib/registry' mount on the Node.
cat <mount-location>/docker/registry/v2/repositories/<image-path>/_manifests/tags/<image-tag>/current/link to get the image index blob location.
jq -j '.manifests | length' %s/docker/registry/<image-index-blob-path>/blobs/%s/data to verify it is valid image index.

This will allow distroless to be used as the base registry image and will solve E2E flakes caused by the missing scheduler-state.json file.
Which issue(s) this PR fixes:
Part of #3
Special notes for your reviewer:
N/A
Release note:

NONE

/assign


Automated cherry pick of #1843: bugfix: baremetal import , guest panic notify

Cherry pick of #1843 on release/2.11.
#1843: bugfix: baremetal import , guest panic notify

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.11@903b2a8). Click here to learn what that means.
The diff coverage is 0%.

@@              Coverage Diff               @@
##             release/2.11   #1844   +/-   ##
==============================================
  Coverage                ?    7.6%
==============================================
  Files                   ?     412
  Lines                   ?   63597
  Branches                ?       0
==============================================
  Hits                    ?    4836
  Misses                  ?   58351
  Partials                ?     410

Flag
Coverage Δ

#aFlag
7.6% <0%> (?)

Impacted Files
Coverage Δ

pkg/compute/models/guest_actions.go
0% <0%> (ø)

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 903b2a8...e3232cf. Read the comment docs.


Fix state sync docs

Added a sed command to enable state sync
Replaced "sync height" with "trust height", because the former doesn't exist in this config file
Replaced "external ip addresses" with "external addresses", because the former doesn't exist in this config file. Also, added port number, because it was missing.

Also, these sed commands don't work on macOS.
Would it makes sense to replace commands like:
sed -i "" -e "s/-=RPC_SERVERS=-/${RPC_STATE_SYNC_SERVERS}/g" ~/.zetacored/config/config.toml

With something like this:
sed -i '' 's|rpc_servers = "[^"]*"|rpc_servers = "'"$RPC_STATE_SYNC_SERVERS"'"|' ~/.zetacored/config/config.toml

If so, can someone, please, test these commands on sed that comes with Linux? (I'm assuming GNU sed)

sed -i "" -e "s/-=RPC_SERVERS=-/${RPC_STATE_SYNC_SERVERS}/g" ~/.zetacored/config/config.toml
works perfectly on my Macbook. What's the problem you are facing?

@julianrubino
sed -i "" -e "s/-=RPC_SERVERS=-/${RPC_STATE_SYNC_SERVERS}/g" ~/.zetacored/config/config.toml

sed: 1: "s/-=RPC_SERVERS=-/http: ...": bad flag in substitute command: '/'

Now I'm thinking it's a zsh thing.

When I run it in bash, it doesn't throw an error, but it also doesn't substitute anything.

Apparently, -=RPC_SERVERS=- are supposed to be placeholders, which the config file doesn't have.

Rather than try to account for all different OS and terminals we might be better of telling me to edit the file and giving them an example of what it is supposed to look like. Remove the sed commands all together.

@CharlieMc0 the issue wasn't with shell or OSes, but rather with the fact that the placeholders weren't were they supposed to be. Giving up on making the process easier for validators because of some compatibility issues is not the way to go in my opinion.


upgrade Walkabout to v4: no default API key, add bike map overlay

Don't merge this until https://github.com/mapzen/carto-s3-bucket/pull/16 is merged and live (usually a 1 min turnaround).

[x] Carto S3 bucket went live
[x] Verified new v4 Walkabout assets in Tangram Play

@rfriberg @hanbyul-here This PR is ready to go, please merge it and tag release the next hour so the Bike Map blog post can go live. Thanks!

Thank you! :)


Utilize afterResolving for Laravel 6.10 and up

A fix was implemented in Laravel 6.10 making the framework no longer resolve the blade compiler on start up (laravel/framework#31009).
The following change utilizes this improvement by not calling the compiler directly if it's not yet been resolved.

Could we use callAfterResolving? Something like:
$this->callAfterResolving('blade.compiler', function (BladeCompiler $compiler) {
    $compiler->directive(/* ... */);
});

@bakerkretzmar I don't think so, because this would break compatibility with lower versions of Laravel that do not have that feature.

Ahh right of course. Thanks!


Pachyderm Shell (psh)

As a user I want a very low latency way to explore and manipulate data. Pachyderm already offers a couple of ways to do this, you can use pachctl mount to explore in your shell or file browser, or you can create a service running a Jupyter notebook. Both of these eventually break down when the data size gets too big and neither has really become a core Pachyderm workflow. psh aims to be a natural, shell like way to interact with the data in pfs that can scale up to large datasizes that pachctl mount can't.
psh is a shell, so similar to bash, zsh, or ssh it's a wrapper around the exec system call. The shell is intended to run on the user's machine but when you pass it a command to run the exec call will happen inside of a container deployed in the cluster, and the stdout and stderr will be captured and sent back to the user. In terms of existing Pachyderm primitives this is just a low latency way to: create a pipeline, wait for the initial job to complete, capture logs from it, and then delete the pipeline. This would already be useful, imo, since users often do things like create a pipeline whose command is find /pfs to see what the file layout is going to look like. But it gets more interesting when we flesh out some of the other features that shells normally implement in addition to just being a wrapper around exec calls.
Globbing
Shells provide support for globbing over the filesystem, for example if you type cat foo/* in your shell the shell will replace foo/* with a list of files under foo which match the glob pattern, and the will exec cat foo/1 foo/2.... psh will do a similar thing, except in a distributed fashion. So if you type cat /pfs/foo/* in psh it will execute cat /pfs/foo/1, cat /pfs/foo/2 individually and then restitch their stdout together. This will get you the same output as if you'd done cat /pfs/foo/1 /pfs/foo/2 on a single machine, but it can be run in distributed fashion.
Pipes
The other major thing that shells offer is the ability to chain commands together with pipes, this will work in psh as well and the pipes will be distributed. Taking our example from above, you could run
cat /pfs/foo/* | grep bar

this will run the full command, including the grep in a distributed fashion, so there will be one grep process per datum (file found in the top level of foo).
I think we're also going to need a way to do a pipe that gets all of the content onto the same node so it can be reduced together. For example suppose you want to sum up all the lines in a repo, you can do
cat /pfs/repo/* | wc -l

but this will give you a stream of numbers, not a single number. To get a single number you have to get all of the numbers to the same place so you can add them together. I'm thinking this would look something like this:
cat /pfs/repo/* | wc -l |* awk '{s+=$1} END {print s}'

Notice that the second pipe is |* and not | that's what tells psh that it should reduce at that step. The choice of * is fairly arbitrary, I'm hoping that it'll make things more clear because * in arguments parallelizes things, * pipes "deparallelizes" things, but if that's going to make things clear to anyone else. Also considered was |=, that one just looks kind of right to me, I can't come up with much explanation why. In general though I think using | character followed by another character is the correct answer, since there's some precedent for that. Most shells, for example, will accept |& for a pipe that forwards stderr as well as stdout/.

That's a nice looking bike shed, I'd be cool with using that, |>might work for similar reasons. Although it might get conflated with >.
Maybe we should just embrace the true bike sheddy nature of this problem and go with the obvious choice: |🚲🏠


Factorio Compatibility

I'm trying to use rust-rcon to send commands to a Factorio server instead of a Minecraft server.
It works but loops forever instead of returning.
The issue is the following bit of code in lib.rs:70:
        self.send(PacketType::ExecCommand, cmd).await?;
...
        // the server processes packets in order, so send an empty packet and
        // remember its id to detect the end of a multi-packet response
        let end_id = self.send(PacketType::ExecCommand, "").await?;
        let mut result = String::new();

        loop {
            let received_packet = self.recv().await?;

            if received_packet.get_id() == end_id {
                // This is the response to the end-marker packet
                break;
            }

            result += received_packet.get_body();
        }

If I add logging I see that end_id is 3 the the only package ever received is 2. I guess Factorio ignores the empty send and only returns confirmation for the original send. I fixed the issue by removing the original end_id line and instead use the real send call:
let end_id = self.send(PacketType::ExecCommand, cmd).await?;

Could you please add this difference in behaviour as an additional feature toggle?

I can try looking into this tomorrow. Can you provide me an example series of commands I can check this with?

Sure, you can start Factorio with
factorio --start-server saves/level.zip --rcon-port 1234 --rcon-password test

Otherwise it won't open the rcon port.
Then you can try it with the following example program:
use rcon::{Connection, Error};

#[tokio::main]
async fn main() -> Result<(), Error> {
    let address = "localhost:1234";
    let mut conn = Connection::connect(address, "test").await?;

    demo(&mut conn, "print('hello world')").await?;
    println!("command finished");
    Ok(())
}

async fn demo(conn: &mut Connection, cmd: &str) -> Result<(), Error> {
    println!("request: {}", cmd);
    let resp = conn.cmd(cmd).await?;
    println!("response: {}", resp);
    Ok(())
}

This prints out
request: print('hello world')

then loops forever. The Factorio server logs:
 487.816 Info RemoteCommandProcessor.cpp:242: New RCON connection from IP ADDR:({<IP_ADDRESS>:37807})
2020-07-25 16:44:06 [CHAT] <server>: print('hello world')

I'm not sure if I understood your solution incorrectly, but I think it would have sent the command twice?
At any rate you have correctly assessed that the Factorio server doesn't reply to empty packets, which prompts me to assume for now that multi-packet responses are not implemented in Factorio, at least not in a common way.
As a result I added a quirks mode for Factorio that only tries to receive single packets.
Take note that I moved away from using feature flags in favor of an API that allows them to be configured at runtime:
let mut conn = Connection::builder()
    .enable_factorio_quirks(true)
    .connect(address, "hunter2").await?;

I've released this as 0.3.0 on crates.io.
Last but not least, THANK YOU for this detailed issue and the detailed example! It made working on this in my limited spare time that much easier. :partying_face:


Improved GitHub Pages site.

Hopefully this is something like what you wanted.
It's not perfect, but it does look a tad neater and it features the grid of Algorithm GIFs.
#74

@SecretJuice It looks amazing! 👏
Can you use links for the gifs from the main repository, instead of adding them again?

Can you use links for the gifs from the main repository, instead of adding them again?

I already made these changes


How to run workers / best practice for cleaning up

Is there a best practice to running worker(s) and cleaning up?
I currently run a worker like so:
      final Worker worker = new WorkerImpl(jesqueConfig, Arrays.asList(queue), Arrays.asList(PhotoUploadActivity.class));
      Thread t = new Thread(worker);
      t.start();
      t.join();

And this seems to work just fine. However the only way for me to cancel the process is to send it a signal, either a TERM or USR{1,2}.
If I look in resque (via resque-web) I can see that there are multiple of these Java workers that just accrue up - they are not getting pruned.
Thus - whats the best practice to gracefully shutting down the runtime container for workers?. I've added a JVM shutdown hook which attempts to call worker.end(true) but this never seems to get called.

I think this should be brought back up. Looks like resque is using heart beats (see prune_dead_workers):
https://github.com/resque/resque/blob/e0f850f087160362cec1ae3759c7c1e1d9190381/lib/resque/worker.rb#L587


Added tsuminoRipper

Category
This change is exactly one of the following (please change [ ] to [x]) to indicate which:

[X] a new Ripper

Description
I added a ripper for tsumino.com
Testing
Required verification:

[x] I've verified that there are no regressions in mvn test (there are no new failures or errors).
[x] I've verified that this change works as intended.

[x] Downloads all relevant content.
[x] Downloads content from multiple pages (as necessary or appropriate).
[x] Saves content at reasonable file names (e.g. page titles or content IDs) to help easily browse downloaded content.

[x] I've verified that this change did not break existing functionality (especially in the Ripper I modified).

Optional but recommended:

[ ] I've added a unit test to cover my change.

Test link: http://www.tsumino.com/Book/Info/37743/dark-elf-no-koi-monogatari-love-story-of-a-dark-elf-
I'm not adding a unit test for this ripper because the site's pretty aggressive with captchas


Add import tests

For:

Policy
Watch
Repository Config
Settings
Ignore Rules

Add special project_key parsing for importing policy or watch.
Also updated golang.org/x/net per Dependabot

@danielmkn Not sure why I didn't see the templates before... 😕


feat(bag time manager): add to beta v0.5.2

Description
awf: (#1776)
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

Codecov Report

:exclamation: No coverage uploaded for pull request base (beta/v0.5.2@6c73362). Click here to learn what that means.
The diff coverage is n/a.

@@              Coverage Diff              @@
##             beta/v0.5.2    #108   +/-   ##
=============================================
  Coverage               ?   0.00%
=============================================
  Files                  ?       1
  Lines                  ?      51
  Branches               ?       0
=============================================
  Hits                   ?       0
  Misses                 ?      51
  Partials               ?       0

Flag
Coverage Δ

differential
0.00% <0.00%> (?)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Clean up scripts + improve documentation

Add more information in README to make it easier for others to contribute to the project. Clean up Python scripts and write out proper documentation.

all done in #12


Fix: use path/filepath package instead of path package

don't use path package for operating system paths.
use path/filepath package instead of path package.

I think path/filepath is the platform-independent API, whereas path uses / path separators.
See godoc: https://pkg.go.dev/path#pkg-overview
And https://pkg.go.dev/path/filepath#pkg-overview

@holzensp
Thank you for the comment.
As @bioball said, we want to use \ instead of / as path separator on Windows.
And, as described in the docs, it's better to use path/filepath package for operating system paths and path package for path operations such as URLs.

Package filepath implements utility routines for manipulating filename paths in a way compatible with the target operating system-defined file paths.
The filepath package uses either forward slashes or backslashes, depending on the operating system. To process paths such as URLs that always use forward slashes regardless of the operating system, see the path package.


fix double "https://" issue

Ah, I've just noticed this issue already exist and also has better fix https://github.com/setnicka/ulozto-downloader/pull/83


Lucene index cursor is null.

From @Lybrial on June 11, 2014 11:2
Im using:

I created a new vertex type with a new property (EMBEDDEDLIST of type STRING)
and put an lucene fulltext index over the new property.

When i now want to get all key of the index:

The cursor is null. The rest of the informations are coorect:

Copied from original issue: orientechnologies/orientdb-lucene#14

From @Lybrial on June 26, 2014 15:22
My goal was to get all the terms indexed so i asked
in the orientDB google group how i can do that.
The answer of Artem Orobets was:
"Just get the index from OIndexManager and call com.orientechnologies.orient.core.index.OIndex#keyCursor, then use this cursor to iterate over keys."
But as i wrote its null.
I just want to get all indexed elements efficiently.

From @maggiolo00 on June 26, 2014 15:17
Hi @Lybrial
I'm thinking about cursor.
What do you expect when iterating keys ?
all he terms indexed?

null by design.  won't fix


Confirm Box takes up width of screen

I've got version 2.3.2, trying to use it in wordpress but the confirm box takes up the whole screen. Adding custom column width doesn't have any affect.

That's martin luther king's speech in the background, use it as a placeholder for a long user entered description, sorry if the language there offends anyone

Hey osumakerspace, poorly I don't know the version 2.3.2, but I did it in the current one with setting a boxWith like:
$.confirm({
boxWidth: '30%',
useBootstrap: false,
});
$.confirm({
boxWidth: '500px',
useBootstrap: false,
});
Bootstrap has to be disabled to use this!
Maybe you could create your own theme and set the width of class ',jconfirm_box'.
See https://craftpip.github.io/jquery-confirm/themes.html

I resolved the same problem modifying the CSS (.jconfirm .jconfirm-box). But this is not the best solution i guess.
.jconfirm .jconfirm-box {
        background: white;
        border-radius: 4px;
        position: relative;
        outline: 0;
        padding: 15px 15px 0;
        overflow: hidden;
        margin-left: 38.33%; /*(modification)*/
        margin-right: 35%; /*(modification)*/
    }

@dezguell which version of the plugin are you using ?, you could use margin-left: auto, margin-right: auto for the time being,

I have the same problem in chrome and IE. Both alert and confirm boxed takes the width of the browser. I'm using version 3.3.4. jQuery 1.11.1, no Bootstrap/
Customize the css did solve the problem, but need to figure out why.


Removed some libraries not in use.

Between Sentence transformers and others there are some libraries still required.
I removed some libraries not in use
Purpose

...
Clean conda

Does this introduce a breaking change?

[ ] Yes
[X] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ X] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

How to Test

Get the code

git clone [repo-address]
cd [repo-name]
git checkout [branch-name]
npm install

Test the code

What to Check
Verify that the following are valid

...

Other Information

[heart]         Liliam Leme reacted to your message:

From: Siliang @.>
Sent: Wednesday, April 24, 2024 1:32:49 AM
To: Azure-Samples/azure-vector-database-samples @.>
Cc: Liliam Leme @.>; Mention @.>
Subject: Re: [Azure-Samples/azure-vector-database-samples] Removed some libraries not in use. (PR #56)
@siliang-j-1225 approved this pull request.
Thanks @LiliamLemehttps://github.com/LiliamLeme. I have created the new env successfully in my local PC. Good work!
—
Reply to this email directly, view it on GitHubhttps://github.com/Azure-Samples/azure-vector-database-samples/pull/56#pullrequestreview-2018611994, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AO7WU5TAGAPLK3ULY7OORZTY64DUDAVCNFSM6AAAAABGS4FNNWVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDAMJYGYYTCOJZGQ.
You are receiving this because you were mentioned.Message ID: @.***>


Add instructions in openssl.cnf to load 'default' and 'legacy'

This means that our application will work as before, even for legacy
algorithms.
(that is, as soon as #9369, #9371, #9372 get merged)

These changes together are quite a big change of behavior - basically it means that with old openssl.cnf the legacy provider will not be loaded and so suddenly many algorithms will stop working. I am not saying we should not make such change I am just asking to really think it through.
Perhaps one option would be to always load legacy provider by default but allow to disable loading it via the configuration file.

@mattcaswell, you might want to pipe in here.

I bet @kroeckx might also have an opinion.
I think a quiet change that removes a whole bunch of algorithms is not a good thing to do in a release that is aiming for "just recompile" for most applications, especially because this will cause run-time failures, not compile-time failures.

a release that is aiming for "just recompile"

Currently, it is not a "just recompile" release at least for 3rdparty algorithms.

Actually, I agree with you guys, and am basically thinking that the legacy provider could be a fallback alongside the default one.  I'll submit a PR for it.

I am of the view that we should not be loading the legacy provider by default - and certainly not as a fallback. We should be encouraging applications to move off of these algorithms.

I think a quiet change that removes a whole bunch of algorithms is not a good thing to do in a release that is aiming for "just recompile" for most applications,

Most applications do not use these algorithms, so I don't think this will impact them. There are obviously some that continue to use them - we should be looking to get them to move to something better. If they must continue to use legacy algs then it is a simple matter to load the legacy provider.

Most applications do not use these algorithms, so I don't think this will impact them. There are obviously some that continue to use them - we should be looking to get them to move to something better. If they must continue to use legacy algs then it is a simple matter to load the legacy provider.

Should that be our response to #9349?

I'm really of two minds regarding this in general.
On one hand, I agree with a hard push away from legacy algorithms.
On the other hand, we do want to cater for well-behaving code, and I just cannot fathom the notion that we implicitly claim that applications using algorithms that we deem legacy now as behaving badly.  That's quite the slap in the face.
I see two ways out of that conflict.  Either make the legacy a fallback (i.e. be lenient to old applications), or be very up front that applications using algorithms we deem legacy will have to change, either in code or in configuration, and those algorithms should be clearly enumerated somewhere.

Should that be our response to #9349?

Yes, with the caveat the there should be an option to specify the providers that you want from the command line (without having to edit config files).

Most applications do not use these algorithms

I am surprised that this is the one time someone can make this claim.  Most of the time we have said "we don't know what people are doing with OpenSSL."
When I tried to remove several old unsupported platforms, I was told to at least go ask on the users mailing list.  (I did, only got one reply.) Shouldn't you at least be doing that?

Perhaps (sigh) adding an ifdef LOAD_LEGACY_BY_DEFAULT which should be enabled to preserve compatibility.

On the other hand, we do want to cater for well-behaving code, and I just cannot fathom the notion that we implicitly claim that applications using algorithms that we deem legacy now as behaving badly. That's quite the slap in the face.

This is a major release. Some breakage was always expected. We've just wanted to keep that breakage to an absolute minimum. OTOH I see it as part of our role to retire insecure algorithms when necessary. There is precedent for this: e.g. the removal of SSLv2 and the move to SSLv3 being uncompiled by default.

I see two ways out of that conflict. Either make the legacy a fallback (i.e. be lenient to old applications), or be very up front that applications using algorithms we deem legacy will have to change, either in code or in configuration, and those algorithms should be clearly enumerated somewhere.

I'm very against the legacy as a fallback idea. IMO the use of legacy algorithms should be an explicit decision. Not something that happens automagically. I do think we should be up front that applications will need to change code/configuration. Since this can be done by configuration this should be a relatively easy thing to do in many cases.

Note, BTW, that I see legacy-as-a-fallback as a temporary measure, to be revisited for 4.0.  I do not see it as a permanent solution.  Maybe that makes a difference...

When I tried to remove several old unsupported platforms, I was told to at least go ask on the users mailing list. (I did, only got one reply.) Shouldn't you at least be doing that?

We're not removing any algorithms. We're not even making them non-compiled by default. We're not even (necessarily) requiring applications to change a single line of code. We're just requiring that there is an explicit decision made that using legacy algs is ok. That could be as simple as changing a configuration file.

Since this can be done by configuration this should be a relatively easy thing to do in many cases.

This is a point.
Yes, you are right that the legacy algorithms aren't enabled by default, and that an explicit configuration choice must be made.  That has been the case for a long time.  With master, one must now make two things: 1) enable in configuration, and 2) explicitly load the legacy provider.  I can see how the need for the two can become confusing.  That's one thing too many.  So another answer is to always enable the code, i.e. remove the configuration options, and regard the mandatory explicit load of the legacy provider as enough "protection"...

We're not even making them non-compiled by default.

Oh wait we aren't?  In that case, it might be a good idea to clear the configuration options...

Oh wait we aren't?

Well - what I meant was we're not making any more legacy algos non-compiled by default. If it was non-compiled by default in 1.1.1 then it still is in 3.0. But algos that were compiled by default in 1.1.1 still will be in 3.0 (even if they are now in the legacy provider).

So another answer is to always enable the code

There is no need to make code that was previously not compiled by default in 1.1.1, compiled by default in 3.0. Most of that code is dead IMO, so lets not resurrect it.

As someone from a Linux distribution, I want to be able to set
defaults that might not be the same as what we set as default
upstream. I might want to disable more things as that we disable
upstream. And I prefer that to be fine grained, as in enable/disable
that cipher, digest, ... I might also want to do things like set a
minimum security level, that currently only affects TLS.
I want to do all of this without recompiling openssl, so it needs
to be in the config file. I also want applications to be able to
override that. That is, the config file is just a default.
I guess an applications might have different contexts, and so
maybe we should have something that overrides a global default,
and something that sets it per context.

I also want applications to be able to override that.

That's a good point actually. I'm not sure we have a good way at the moment for an application to specify different providers to those they get automatically from the config file. Or, rather, it is easy for applications to add providers that weren't specified in the config file, but they can't take them away AFAIK.

I do not see being unable to drop providers from applications as a major deficiency.

    OSSL_PROVIDER *prov = OSSL_PROVIDER_find("foo");

    OSSL_PROVIDER_free(prov);
    OSSL_PROVIDER_free(prov);

Yes, it's a dirty trick, but...

Yes, it's a dirty trick, but...

:nauseated_face:

I agree with t8m, though...

I'm going to close this one, 'cause I think it will be more confusing than helpful.  Some installations may get this update, others not, meaning that the user experience will be pretty random.  Nah...


DEX-520 ErrorInterpolator type classes refactoring

ContextShow switched to cats.Show
ContextWrites switched to play Writes

Did you check a newly generated documentation? Are there changes?


https://github.com/ROCm/HIP/issues/2209 should be reopened for hipcc returning incosistent values

Problem Description
I added the description to old 2209 bug that I tested with rocm 6.1.1 version.
Operating System
Fedora 40
CPU
AMD Ryzen 5700x
GPU
AMD Radeon RX 7900 XT
ROCm Version
ROCm 6.1.0
ROCm Component
HIP
Steps to Reproduce
Use this test app
#include <limits>
#include <cstdint>
#include <iostream>

static double Nan64() {
  return std::numeric_limits<double>::quiet_NaN();
}

static double NegativeInfinity64() {
  return  std::numeric_limits<double>::infinity() * -1.0;
}

int main(int argc, char* argv[]) {
  std::cout << "std::min of -inf and nan: \t";
  std::cout << std::min( NegativeInfinity64(), Nan64() ) << std::endl;

  std::cout << "std::min of nan and -inf: \t";
  std::cout << std::min( Nan64(), NegativeInfinity64() ) << std::endl;

  std::cout << "std::max of -inf and nan: \t";
  std::cout << std::max( NegativeInfinity64(), Nan64() ) << std::endl;

  std::cout << "std::max of nan and -inf: \t";
  std::cout << std::max( Nan64(), NegativeInfinity64() ) << std::endl;

  return 0;
}

Install hipcc and regular clang and gnu-c++ of your linux distro and execute this scipt to get results from all 4 compilers.
hipcc -v -x hip testcase.cpp -o testcase_hip_x_hip
hipcc -v -x c++ testcase.cpp -o testcase_hip_x_c++
/usr/bin/clang++ testcase.cpp -o testcase_usr_bin_clang
/usr/bin/g++ testcase.cpp -o testcase_usr_bin_g++

Results:
[lamikr@localhost hipcc_bug]$ ./testcase_hip_x_hip
std::min of -inf and nan: 	nan
std::min of nan and -inf: 	-inf
std::max of -inf and nan: 	-inf
std::max of nan and -inf: 	nan
[lamikr@localhost hipcc_bug]$ ./testcase_hip_x_c++
std::min of -inf and nan: 	-inf
std::min of nan and -inf: 	nan
std::max of -inf and nan: 	-inf
std::max of nan and -inf: 	nan
[lamikr@localhost hipcc_bug]$ ./testcase_us
[lamikr@localhost hipcc_bug]$ ./testcase_usr_bin_clang
std::min of -inf and nan: 	-inf
std::min of nan and -inf: 	nan
std::max of -inf and nan: 	-inf
std::max of nan and -inf: 	nan
[lamikr@localhost hipcc_bug]$ ./testcase_usr_bin_g++
std::min of -inf and nan: 	-inf
std::min of nan and -inf: 	nan
std::max of -inf and nan: 	-inf
std::max of nan and -inf: 	nan

So when compiled with hipcc -x option, results are different than with 3 other compilers. This can affect to the functions expecting "well known" behavior for example in pytorch when using min, max or clamp functions.
(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support
No response
Additional Information
No response

this is a clang issue https://github.com/llvm/llvm-project/issues/93962


Implement repository pattern persistence layer

The first iteration of the project will utilise csv files for the persistence layer. However, at a later date this will transition to a database.
This issue needs to implement the following:

Create abstraction (AbstractRepository) to sit above persistence layer (Utilse an ABC) using the Repository Pattern.
Implement CsvRepository that inherits from AbstractRepository

CsvRepository will require a _load method that loads data from fitness assessment and workout csv files. For fitness assessments, multiple records will need to be mapped to a single Python object (see #11)

First iteration of AbsractRepository:
class AbstractRepository(ABC):
    """Interface for persistence layer."""

    @abstractmethod
    def get_profile(self, id: str) -> FitnessProfile:
        """Get a single FitnessProfile from the persistence layer."""
        raise NotImplementedError(
            "Persistence layer needs to implement a get_profile method."
        )

    @abstractmethod
    def list_profiles(self) -> Sequence[FitnessProfile]:
        """Get a sequence of FitnessProfiles from the persistence layer."""
        raise NotImplementedError(
            "Persistence layer needs to implement a list_profiles method."
        )

    @abstractmethod
    def add_profile(self, profile: FitnessProfile) -> None:
        """Add a single FitnessProfile record to persistence layer."""
        raise NotImplementedError(
            "Persistence layer needs to implement a add_profile method"
        )

    @abstractmethod
    def add_profiles(self, profiles: Sequence[FitnessProfile]) -> None:
        """Add multiple FitnessProfiles to the persistence layer."""
        raise NotImplementedError(
            "Persistence layer needs to implement a add_profiles method"
        )

    @abstractmethod
    def get_workout(self, id: str) -> Workout:
        """Get a single Workout from the persistence layer."""
        raise NotImplementedError(
            "Persistence layer needs to implement a get_workout method"
        )

    @abstractmethod
    def list_workouts(self, id: str) -> Sequence[Workout]:
        """Get muliptle WOrkouts from the persistence layer."""
        raise NotImplementedError(
            "Persistence layer needs to implement a list_workouts method"
        )

    @abstractmethod
    def add_workout(self, workout: Workout) -> None:
        """Add a single Workout to the persistence layer."""
        raise NotImplementedError(
            "Persistence layer needs to implement a add_workout method"
        )

    @abstractmethod
    def add_workouts(self, workouts: Sequence[Workout]) -> None:
        """Add multiple Workouts to the persistence layer."""
        raise NotImplementedError(
            "Persistence layer needs to implement a add_workouts method"
        )

Standardise entity_type using an Enum:

class EntityType(Enum):
    """Represent the type of entity to be retrieved from persistence layer."""

    FITNESS_PROFILE = "fitness_profile"
    WORKOUT = "workout"

class AbstractRepository(ABC):
    """Interface for persistence layer."""

    @abstractmethod
    def get(self, id: str, entity_type: EntityType) -> FitnessProfile | Workout:
        """Get a single entity from the persistence layer."""
        raise NotImplementedError("Persistence layer needs to implement a get method.")

    @abstractmethod
    def get_all(self, entity_type: EntityType) -> Sequence[FitnessProfile | Workout]:
        """Get a sequence of entities from the persistence layer."""
        raise NotImplementedError("Persistence layer needs to implement a list method.")

    @abstractmethod
    def add(self, entity_type: EntityType, entity: FitnessProfile | Workout) -> None:
        """Add a single entity record to persistence layer."""
        raise NotImplementedError("Persistence layer needs to implement an add method.")

This requires further investigation for me to understand whether to use a generic or non-generic abstraction (or a combination of the two using inheritence).

Having read this blog post I believe I need to implement a repository for each entity. In the post it references creating a concrete repository for each aggregate root. As each of my entities (FitnessProfile and Workout) are a separate aggregagte root I'll need a concrete repository implementation for both. If using ABCs, then the concrete repository will inherit from an abstract repository.
Abstract Repository
Entity = TypeVar("Entity", FitnessProfile, Workout)

class AbstractRepository(ABC):
    """Interface for persistence layer."""

    @abstractmethod
    def get(self, id: str) -> Entity:
        """Get a single entity from the persistence layer."""
        raise NotImplementedError("Persistence layer needs to implement a get method.")

    @abstractmethod
    def get_all(self) -> Sequence[Entity]:
        """Get a sequence of entities from the persistence layer."""
        raise NotImplementedError(
            "Persistence layer needs to implement a get_all method."
        )

    @abstractmethod
    def add(self, entity: Entity) -> None:
        """Add a single entity record to persistence layer."""
        raise NotImplementedError("Persistence layer needs to implement an add method")

Concrete FitnessProfile Repository for csv File Persistence

class CsvFitnessProfileRepository(AbstractRepository):
    """CSV implementation of repository."""

    def __init__(self, folder: str):
        """Initialise CsvRepository with fitness profiles and workouts.

        Args:
            folder: The directory path for the folder containing the CSV files.
        """
        self._file_path = Path(folder) / "fitness_assessments.csv"
        self._fitness_profiles: list[FitnessProfile] = []
        self._load()

    def _load(self):
        # logic to load csv data to FitnessProfile objects

    def get(self, id: str) -> FitnessProfile:
        """Get a single entity from the persistence layer."""
        # get logic implementation

    def get_all(self) -> Sequence[FitnessProfile]:
        """Get a sequence of entities from the persistence layer."""
        # get_all logic implementation

    def add(self, entity: FitnessProfile) -> None:
        """Add a single entity record to persistence layer."""
        # add logic implementation

Concrete Workout Repository for csv File Persistence
class CsvWorkoutRepository(AbstractRepository):
    """CSV implementation of  Workout repository."""

    def __init__(self, folder: str):
        """Initialise CsvRepository with workouts.

        Args:
            folder: The directory path for the folder containing the CSV files.
        """
        self._file_path = Path(folder) / "conditioning_workouts.csv"
        self._workouts: list[Workout] = []
        self._load()

    def _load(self):
        # logic to load csv data to Workout objects

    def get(self, id: str) -> Workout:
        """Get a single entity from the persistence layer."""
        # get logic implementation

    def get_all(self) -> Sequence[Workout]:
        """Get a sequence of entities from the persistence layer."""
        # get_all logic implementation

    def add(self, entity: Workout) -> None:
        """Add a single entity record to persistence layer."""
        # add logic implementation

With multiple repositories, how will I manage DB sessions when using a relational database?
Potential solutions in this blog post

Another blog post outlining the use of the Repository Pattern with two domain objects

I'm currently defining a new Generic type outside of the class called Entity with the allowed types of FitnessProfile and Workout. If I want to use the AbstractRepository class with another domain object I'll need to update this type variable (Entity).
Entity = TypeVar("Entity", FitnessProfile, Workout)

class AbstractRepository(ABC):
    """Interface for persistence layer."""

    @abstractmethod
    def get(self, id: str) -> Entity:
        """Get a single entity from the persistence layer."""
        raise NotImplementedError("Persistence layer needs to implement a get method.")

    @abstractmethod
    def get_all(self) -> Sequence[Entity]:
        """Get a sequence of entities from the persistence layer."""
        raise NotImplementedError(
            "Persistence layer needs to implement a get_all method."
        )

    @abstractmethod
    def add(self, entity: Entity) -> None:
        """Add a single entity record to persistence layer."""
        raise NotImplementedError("Persistence layer needs to implement an add method")

Another approach is to pass a Generic type variable to the AbstractRepository to define the type that we want the repository to work with. This will provide future extensibility without having to modify the Entity type variable in the previous code.
T = TypeVar("T")

class AbstractRepository(ABC, Generic[T]):
    """Interface for persistence layer."""

    @abstractmethod
    def get(self, id: str) -> T:
        """Get a single entity from the persistence layer."""
        raise NotImplementedError("Persistence layer needs to implement a get method.")

    @abstractmethod
    def get_all(self) -> Sequence[T]:
        """Get a sequence of entities from the persistence layer."""
        raise NotImplementedError(
            "Persistence layer needs to implement a get_all method."
        )

    @abstractmethod
    def add(self, entity: T) -> None:
        """Add a single entity record to persistence layer."""
        raise NotImplementedError("Persistence layer needs to implement an add method")

Now when I want to create a repository for an object I can pass it to AbstractRepository and the concrete repository class will expect the particular type of objects to work with. For example, if a pass FitnessProfile to the AbstractRepository then the concrete repository class will expect to work with FitnessProfile (e.g. return a FitnessProfile object when the get method is called.
class CsvFitnessProfileRepository(AbstractRepository[FitnessProfile]):
    """CSV implementation of FitnessProfile repository."""

    def __init__(self, folder: str):
        """Initialise CsvRepository with fitness profiles.

        Args:
            folder: The directory path for the folder containing the CSV files.
        """
        self._fitness_profiles_path = Path(folder) / "fitness_assessments.csv"
        self._fitness_profiles: list[FitnessProfile] = []
        self._load()

    def _load(self):
        with open("data/fitness_assessments3.csv") as f:
            reader = csv.reader(f)
            next(reader)  # skip header row
            sorted_records = sorted(reader, key=lambda record: record[0])

        print(sorted_records)
        results = self.group_results_by_name(sorted_records)
        print(results)

    def get(self, id: str) -> FitnessProfile:
        """Get a single entity from the persistence layer."""
        pass

    def get_all(self) -> Sequence[FitnessProfile]:
        """Get a sequence of entities from the persistence layer."""
        pass

    def add(self, entity: FitnessProfile) -> None:
        """Add a single entity record to persistence layer."""
        pass

class CsvWorkoutRepository(AbstractRepository[Workout]):
    """CSV implementation of  Workout repository."""

    def __init__(self, folder: str):
        """Initialise CsvRepository with workouts.

        Args:
            folder: The directory path for the folder containing the CSV files.
        """
        self._file_path = Path(folder) / "conditioning_workouts.csv"
        self._workouts: list[Workout] = []
        self._load()

    def _load(self):
        with open(self._file_path) as f:
            reader = csv.reader(f)
            next(reader)  # skip header row
            sorted_records = sorted(reader, key=lambda record: record[0])

        print(sorted_records)
        results = self.group_results_by_name(sorted_records)
        print(results)

    def get(self, id: str) -> Workout:
        """Get a single entity from the persistence layer."""
        pass

    def get_all(self) -> Sequence[Workout]:
        """Get a sequence of entities from the persistence layer."""
        pass

    def add(self, entity: Workout) -> None:
        """Add a single entity record to persistence layer."""
        pass

I've opened issue #17 for concrete implementations of the AbstractRepository to avoid this issue and associated pull request becoming too large.


Add OLS-8 json

This uses API v 2

@malvikasharan I've added the json for the applications, but I think the review isn't migrated yet - is that right? I'll leave that for now :)


Update gst shim to support extracting message fields

In 2b941e47e8573d260f85e4a435e19afae3262e7f we query the pipeline duration directly on a set cadence instead of using a regular expression to parse fields off of the message structure's .ToString(). Gstreamer allows us to get these fields directly, we just don't have a way to do it with the current wrapper. You can sort of hack around it with
/*
#cgo pkg-config: gstreamer-1.0
#include <gst/gst.h>
*/
import "C"
import (
	"unsafe"
)

msg := bus.Pull(gst.MessageEos | gst.MessageError | gst.MessageElement | gst.MessageBuffering)
switch msg.GetType() {
// ...
case gst.MessageElement:
	data := msg.GetStructure().ToString()

	result.log.WithField("msg", data).Debug("Got message")
	if strings.HasPrefix(data, "GstCacheDownloadComplete") {
		ptr := (*C.GstStructure)(unsafe.Pointer(msg.GetStructure().C))
		cached := C.GoString(C.gst_structure_get_string(ptr, C.CString("location")))
		result.log.WithField("location", cached).Debug("Buffering Complete")
	}
// ...
}

But it would be nice to be able to
msg := bus.Pull(gst.MessageEos | gst.MessageError | gst.MessageElement | gst.MessageBuffering)
switch msg.GetType() {
// ...
case gst.MessageElement:
	data := msg.GetStructure().ToString()

	result.log.WithField("msg", data).Debug("Got message")
	if strings.HasPrefix(data, "GstCacheDownloadComplete") {
		cached := msg.GetStructure().GetString("location")
		result.log.WithField("location", cached).Debug("Buffering Complete")
	}
// ...
}

While we're at it, let's also expose https://developer.gnome.org/gstreamer/stable/gstreamer-GstStructure.html#gst-structure-get-name

This would also allow us to put the progress element back in the pipeline and have one less goroutine to worry about.

This will allow us to implement caching more cleanly in #14 as gstreamer doesn't seem to clean up after itself and relies on the OS to do the cleanup.

Upstream in #16

Implemented in https://github.com/nlowe/gst/commit/5b3add2d650f7b8285e88bcd76fa541a04b69db6


Asset Sharing Model in Scratch Org Definition File not reflecting when creating scratch orgs

Summary
Hello, we are trying to set the Asset object to private and enable asset sharing as we have classes writing to the AssetShare object. When we try to generate a new scratch org, the assetsharing setting is enabled but the OWD is set to controlled by parent. We see that when adding a default record type to the definition file it's getting created, but the sharing model is not reflecting as private. This is causing issues when attempting to generate a package version with reference to the AssetShare object.
Steps To Reproduce:
Please see below for our definition file, not certain if we are doing something wrong here or if this is a bug which we need to raise a case for:
{
"orgName": "ABC Company",
"description": "Baseline definition of the Health Cloud org",
"country": "US",
"edition": "Enterprise",
"hasSampleData": false,
"language": "en_US",
"features": [
"HealthCloudUser",

"Communities",

"ContactsToMultipleAccounts",

"PersonAccounts",

"RecordTypes"

],
"settings": {
"chatterSettings": {

  "enableChatter": true

},

"knowledgeSettings": {

  "enableKnowledge": true,

  "enableLightningKnowledge": true

  },

"communitiesSettings": {

  "enableNetworksEnabled": true

},

"lightningExperienceSettings": {

  "enableS1DesktopEnabled": true

},

"sharingSettings": {

    "enableAssetSharing": true

}

},
"objectSettings": {
"asset": {

  "sharingModel": "private",

  "defaultRecordType": "Test"

}

}
}

Also seeing same behaviour :(

I applied some workaround 2 or 3 months ago with explicitly including the Asset.object-meta.xml with     <externalSharingModel>Private</externalSharingModel> defined into the scratch org build job. I do hope it's still valid solution

I applied some workaround 2 or 3 months ago with explicitly including the Asset.object-meta.xml with  <externalSharingModel>Private</externalSharingModel> defined into the scratch org build job. I do hope it's still valid a solution

I tried this, but unfortunately did not work for me.

I marked this as a bug since the objectSettings didn't work.  the workaround from @szymon-halik (deploying the Asset object including <externalSharingModel>Private</externalSharingModel> after the scratch org creation finished did work for me.
Unfortunately, that's gonna be something on the server that CLI team can't fix, but we can notify the correct folks.  If any of you can open a support case, that helps it get prioritization.


Inconsistency for FIRST_KEY_INDEX for scripts in cluster mode

Description
When using scripts in cluster mode, RedisCluster.extractFirstKey() is called with redisArgs the same as args.  In other words, working off the example in documentation, when calling set('key', 1), redisArgs is set to ["SET", "key", "1"]; when calling add('key', 1), it's set to ["key", "1"].
Instead of setting FIRST_KEY_INDEX to the usual value of 1, for scripts, it should be set to 0 to get the correct key value.
This should be documented because it's not obvious.  I happened to look at the packet capture and noticed this behavior.  Because redirection works well, this inefficiency may go unnoticed by users.

@dtikhonov-iex TBH I found out about this a few days ago by mistake (I was changing the code around that..), and I'm not sure how to proceed:

document that FIRST_KEY_INDEX is based on the reply from transformArguments, and not necessarily the whole command arguments.
"fix" it in v5

What do you think we should do?
@guyroyse @simonprickett what do you think?

The fix would be: if FIRST_KEY_INDEX is not specified, the library should do the right thing.
Otherwise, documentation should definitely be updated.

FIRST_KEY_INDEX for EVAL (evalFirstKeyIndex) is also incorrect. In cluster mode EVAL with randomly pick nodes until it finds the correct slot or fails.


Timeline (Trips History / היסטוריית נסיעות) page stopped working

Timeline page

Hi, I started working on this, can you please assign it to me? Thanks

Sure, thank you!


Missing Power BI

Name
Power BI
Description
Power BI is a business analytics tool developed by Microsoft that enables users to visualize data and share insights across an organization or embed them in an app or website. It provides interactive dashboards and business intelligence capabilities for data-driven decision-making.
Link
https://www.microsoft.com/en-us/power-platform/products/power-bi/
Layer
Data
Components
Visualization
License
Proprietary
Current Usage
Power BI is a collection of software services, apps, and connectors that work together to turn your unrelated sources of data into coherent, visually immersive, and interactive insights. Your data might be an Excel spreadsheet, or a collection of cloud-based and on-premises hybrid data warehouses. Power BI lets you easily connect to your data sources, visualize and discover what's important, and share that with anyone or everyone you want.
Key Features

Interactive Visualizations: Dynamic and customizable data visualizations.
Data Connectivity: Integrates with hundreds of data sources like Excel, SQL Server, Azure, Salesforce, and more.
AI Insights: Leverages machine learning for predictive analytics and trends.
Customizable Dashboards: Create dashboards tailored to business needs.
Data Modeling: Simplified and advanced modeling with DAX (Data Analysis Expressions).

Checklist

[X] Verified the tool is actively maintained
[X] Checked that the tool isn't already in the database
[X] Provided accurate license information
[X] Included working documentation link

Notes
No response

Thanks again @ncoutoca - added this entry


feat(text-input): Add Show/hide password for password inputs

I'm currently working on adding password visibility toggle to the text input component, first adding it to the vanilla component before porting it to the React component (related: https://github.com/IBM/carbon-components-react/issues/1033)
While previewing my changes, I noticed this:
In the documentation page, there is a style rule which places min-width: 20rem on .component-example__live .text-input .bx--text-input, but within text-input.hbs there is an inline style rule that forces one of the examples to have a width of 300px (or 18.75rem). What happens then is that the text input field will actually extend beyond the width of its container. I've highlighted how this affects the placement of my password visibility toggle in the screenshot below, but I just wanted to know if the min-width of the text input was meant to conflict with the inline styles on the example in the docs.

The width in the doc example was added to show how text could wrap, would probably be good to update this however so the width and min-width don't interfere with each other. Feel free to include that in your PR if you would like.


[gradle] --dryrun flag skips all tasks

Task List

[x] Steps to reproduce provided
[ ] Stacktrace (if present) provided
[ ] Example that reproduces the problem (link to git repository is ideal)
[x] Full description of the issue provided (see below)

Steps to Reproduce

Configure JReleaser using the Gradle plugin
Invoke gradle jreleaserRelease --dryrun

Expected Behaviour
All release steps should be executed in dryrun mode
Actual Behaviour
No tasks are executed
Environment Information

Operating System: N/A
JReleaser Version: 1.0.0-M3
JDK Version: N/A

Gradle has it's own --dryrun flag which skips every task. JReleaser requires a different flag, such as -dry-run.

This was addressed already by https://github.com/jreleaser/jreleaser/commit/63ac7bf6ba82b963bf9374a4220a6c1e8acc370c

Gradle has its own --dry-run flag which takes precedence over JReleaser's flag.
// from gradle --help
-m, --dry-run                      Run the builds with all task actions disabled.

This means JReleaser will have to revert to --dryrun.


Mirador issues requests for images via HTTP when HTTPS is specified in the manifest

We've been transitioning web services to https. When we closed port 80 on the server hosting our loris installation an issue with Mirador emerged: it made requests for thumbnail images via https, but requests for larger images were made via http and we accordingly not completed. We've addressed by re-opening port 80 but would ideally like to see the behaviour changed in Mirador. A sample manifest where this behaviour was seen can be found here: http://data.ucd.ie/api/img/manifests/ucdlib:36572.

Your info.json has an http ID:
https://iiif.ucd.ie/loris/ucdlib:36777/info.json.  Image requests are created from that ID.
Update that to point to https and Mirador will make the correct requests.

I think I'm seeing similar behavior with this simple test:
https://edsu.github.io/mirador-test
manifest is here:
https://edsu.github.io/mirador-test/manifest.json

It turned out to be a problem with using https://edsu.github.com/mirador-test/manifest.json instead https://edsu.github.io/mirador-test/manifest.json in my viewer config. https requests to edsu.github.com get redirected to http edsu.github.io ... :-)


Add support for Solaris & Illumos etc. (easy fix, code suggestion within)

Solaris and Illumos use Bash as the default shell. However, currently bash-it does not work as expected on them.
This can be fixed as described, tested, and confirmed here.
Here's what I suggest:

In install.sh, check for $0STYPE of solaris*
If $0STYPE is solaris*, then:

Backup ~/.profile to ~/.profile.bak
Comment out all uncommented lines in ~/.profile
Add the following lines to ~/.profile:

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin directories
PATH="$HOME/bin:$HOME/.local/bin:$PATH"

Continue the rest of the install.sh as usual.

Great suggestion - please feel free to provide a PR for this!


Help wanted, the external file

Dear author,
Thanks a lot for your work.
I just try to set the external weather file(.tm2) to type 15-2 for processing the weather data.
I could not find any detailed example in this, could you please give me an instance?
Further, I just run the type 15 in trnsystor, the tm2 file will decrease from 1232kb to 563kb. I do not know if there is any problem to damage the weather file.

Here some of the files just became 563kb
I also tested the type9e, still facing the problem of the setting of external_files, would you please give an example for how to config the external files for a model

This seems like a TRNSYS question. Please refer to the TRNSYS documentation on how to use weather readers.
As for any issues with Trnsystor, please provide the full code (with comments) to help me help you.

from trnsystor import TrnsysModel
import trnsystor
from trnsystor.statement import Equation
from trnsystor.collections import EquationCollection
from trnsystor import Deck, ControlCards
import subprocess
import type9e for the weather_data, the xmltmf file just directly saving from the trnsys studio
weather_xml = "./all_xml/Type9e.xmltmf"
weather_model = TrnsysModel.from_xml(weather_xml)
changing of the parameters for the txt file I just need to load, this setting is working in trnsys studio
weather_model.parameters["Mode"] = 4
weather_model.parameters["Header_Lines_to_Skip"] = 1
weather_model.parameters["No_of_values_to_read"] = 7
weather_model.parameters["Interpolate_or_not_1"] = -1
weather_model.parameters["Interpolate_or_not_2"] = -1
weather_model.parameters["Interpolate_or_not_3"] = -1
weather_model.parameters["Interpolate_or_not_4"] = -1
weather_model.parameters["Interpolate_or_not_5"] = -1
weather_model.parameters["Interpolate_or_not_6"] = -1
weather_model.parameters["Interpolate_or_not_7"] = -1
using type 65c to plot the weather information,
type65_xml = "./all_xml/Type65c.xmltmf"
monitor_test = TrnsysModel.from_xml(type65_xml)
monitor_test.parameters["Left_axis_minimum"] = 0
monitor_test.parameters["Left_axis_maximum"] = 30000
monitor_test.parameters["Nb_of_left_axis_variables"] = 1
#connected between those two model
weather_model.connect_to(monitor_test, mapping={"Output_2": "Left_axis_variable_1"})
simulation card
cc = ControlCards.all()
cc.set_statement(trnsystor.statement.Simulation(start=3800, stop=4000, step=1))
deck_file = Deck(name='mytest', control_cards=cc, author='gaoyuan')
list_models = [weather_model, monitor_test]
deck_file.update_models(list_models)
deck_file.save('my_project.dck')
running simulation through dck file
subprocess.call(r'"D:\TRNSYS18\Exe\TrnEXE64.exe" "my_project.dck"', cwd=r'C:\Users\asus\Desktop\trnsys')
Here is my code file, I am a little bit confused for the introduction of external_files for the model, especially for type9e model. Since I could not find an coding example for how to deal with the external_files of trnsys model, I just change the XML text for the path of external_files, but still not work.

I think the most difficult part is for the external_files in trnsystor. I could not find out how to deal with this part. The doc seems a little bit confusing to me and there is no coding example.

Thank you for sharing the example; this was very helpfull. The path of an external file must be set on the "value" attribute of the ExternalFile object. In the case of the weather_model, you can set the path this way:
weather_model.external_files["Input_file_name"].value = "tests/input_files/US-CO-Boulder-94018.tm2"

Btw, why don't you use the Type15-2 to read the weather data?

Thanks a lot for your help, I may use the real measured data to replace the other data, so I used the .txt file. Currently, I change to the type15-2, however, it just raises the KeyError when I modify my coding, here is the result.
weather_xml = "./all_xml/Type15-2.xmltmf"
weather_model = TrnsysModel.from_xml(weather_xml)
weather_model.external_files["Input_file_name"].value = "C:/Users/asus/Desktop/trnsys/Weather/US-TMY2/US-CA-San-Francisco-23234.tm2"
I rebuild the xmltmf file from trnsys 18, and try again, but it is till not working.

Also I try to change the code into
weather_model.external_files.values = "C:/Users/asus/Desktop/trnsys/all_xml/weather/tianqi.txt"
I still try the .txt case because I just want to ensure the type of file does not include any further problems. However, the log says that the type9e still could not read from the supplied data file.
*** Fatal Error at time   :      3800.000000
Generated by Unit     :     1
Generated by Type     :     9
Message               : Unable to correctly read from the supplied data file. Please check the file and re-run the simulation. The most likely cause of this problem is an empty or non-existent file.

Also, try some in the type15-2 case, still not working.
*** Fatal Error at time   :      3000.000000
Generated by Unit     :     1
Generated by Type     :    15
Message               : Unable to correctly read from the supplied data file - please check the file and re-run the simulation.
weather_xml = "./all_xml/Type15-2.xmltmf"
weather_model = TrnsysModel.from_xml(weather_xml)
weather_model.external_files.values = r"C:\Users\asus\Desktop\trnsys\CN-Beijing-545110.tm2"
Also, I notice that the file address is not changed

But your code example will raise KeyError:

The ExternalFiles attribute is a dict-like object. Make sure you index the external file with the correct key name:
import trnsystor
from trnsystor import Deck, ControlCards, TrnsysModel
from trnsystor.collections import EquationCollection

# create weather model
weather_xml = "tests/input_files/Type15-2.xml"
weather_model = TrnsysModel.from_xml(weather_xml)

# assign external file and logic number
weather_model.external_files["Which_file_contains_the_TMY_2_weather_data_"] = "tests/input_files/US-CO-Boulder-94018.tm2"
# The logical unit needs to be assigned manually
weather_model.parameters["Logical_unit"] = weather_model.external_files["Which_file_contains_the_TMY_2_weather_data_"].logical_unit

# Create online plotter
monitor_test = TrnsysModel.from_xml("tests/input_files/Type65c.xml")
monitor_test.parameters["Left_axis_minimum"] = 0
monitor_test.parameters["Left_axis_maximum"] = 30000
monitor_test.parameters["Nb_of_left_axis_variables"] = 1

# connect the two models
weather_model.connect_to(monitor_test, mapping={"Global_horizontal_radiation_not_interpolated_": "Left_axis_variable_1"})
cc = ControlCards.all()
cc.set_statement(trnsystor.statement.Simulation(start=3800, stop=4000, step=1))

deck_file = Deck(name='mytest', control_cards=cc )

list_models = [weather_model, monitor_test]

deck_file.update_models(list_models)

deck_file.save('my_project.dck')

A fix [#54] regarding printing of inputs has just been pushed; That should also make sure you can run the file.

Really apprecaite your help!!!! It could run in my env firstly. But there will be still some problems.
Firstly, after running the first time, the .tm2 file will become 1kb, which means a damage in the file?
Secondly, I try to output the dry_bulb_temperature of .tm2 file, but it only a stright line in the trnsys plot.
Besides, the .txt case still not work, the type9e seems do not have the logical_unit here.
import trnsystor
from trnsystor import Deck, ControlCards, TrnsysModel
from trnsystor.collections import EquationCollection
create weather model
weather_xml = "C:/Users/asus/Desktop/trnsys/all_xml/Type15-2.xml"
weather_model = TrnsysModel.from_xml(weather_xml)
assign external file and logic number
weather_model.external_files["Which_file_contains_the_TMY_2_weather_data_"] = "C:/Users/asus/Desktop/trnsys/CN-Beijing-545110.tm2"
The logical unit needs to be assigned manually
weather_model.parameters["Logical_unit"] = weather_model.external_files["Which_file_contains_the_TMY_2_weather_data_"].logical_unit
Create online plotter
monitor_test = TrnsysModel.from_xml("C:/Users/asus/Desktop/trnsys/all_xml/Type65c.xml")
monitor_test.parameters["Left_axis_minimum"] = 0
monitor_test.parameters["Left_axis_maximum"] = 30
monitor_test.parameters["Nb_of_left_axis_variables"] = 1
connect the two models
weather_model.connect_to(monitor_test, mapping={"Dry_bulb_temperature": "Left_axis_variable_1"})
cc = ControlCards.all()
cc.set_statement(trnsystor.statement.Simulation(start=3800, stop=8760, step=1))
deck_file = Deck(name='mytest', control_cards=cc )
list_models = [weather_model, monitor_test]
deck_file.update_models(list_models)
deck_file.save('my_project.dck')
import subprocess
Running TRNSYS in interactive mode
subprocess.call(r'"D:\TRNSYS18\Exe\TrnEXE64.exe" "my_project.dck"', cwd=r'C:\Users\asus\Desktop\trnsys')

After, running one file, it became 1kb, and the output value is not correct.

It worked in trnsys studio, seems not the problem from the file.

It looks like the weather file reader is eating bytes out of the input file when the logical_unit number is not correct. At this point, this is an issue with TRNSYS, not trnsystor.

But for the type9e, the logical_unit could not be set in the parameters. How to deal with this part to make sure the external file is read correctly?


Recommender deployment on Core ML doesn't work on iOS simulator

On incorporating the libRecommender-x86_64.dylib artifact from here along with an ML Model into an iOS App, I got the following error when I tried to build my app:
dyld: Library not loaded: @rpath/libRecommender.dylib
  Referenced from: /Users/schhabra/Library/Developer/CoreSimulator/Devices/72F2BACF-4B76-45A3-8533-8038C62C0CA4/data/Containers/Bundle/Application/71D95C82-980B-4777-ACF2-D8A676FB2121/TestRecommenderOniOS.app/TestRecommenderOniOS
  Reason: no suitable image found.  Did find:
	/Users/schhabra/Library/Developer/CoreSimulator/Devices/72F2BACF-4B76-45A3-8533-8038C62C0CA4/data/Containers/Bundle/Application/71D95C82-980B-4777-ACF2-D8A676FB2121/TestRecommenderOniOS.app/Frameworks/libRecommender.dylib: mach-o, but not built for iOS simulator
	/Users/schhabra/Desktop/WWDC 2018 Prep/TestRecommenderOniOS/libRecommender.dylib: mach-o, but not built for iOS simulator

@shantanuchhabra Can you take a look at this one, and see if it works now with x86_64 (having fixed #799), or do we need to do something further here for simulator compatibility?

I can still repro this, so fixing #799 didn't fix this.

i have this same issue

I have this issue as well


Query results disappear (only headers remain) after switching tabs in SQL Lab

When you switch tabs in SQL Lab and switch back to a tab which had a query you previously ran, instead of seeing the past query results (or a button to refetch results) you just see the headers - column names.
When user force refreshes the page, the results load - without the query being run again (as expected) --> this should happen right away when switching tabs.
Expected results
See previously loaded query results.
Actual results
See headers and no query results.
Screenshots

How to reproduce the bug

Go to 'SQLab'
Run a query
Switch to new tab within SQL Lab
Switch back to the previous tab - see the issue - no data, no "refetch results" button - just headers of the table

Environment
(please complete the following information):

superset version: master

Checklist
Make sure these boxes are checked before submitting your issue - thank you!

[ ] I have checked the superset logs for python stacktraces and included it here as text if there are any.
[x] I have reproduced the issue with at least the latest released version of superset.
[x] I have checked the issue tracker for the same issue and I haven't found one similar.

Additional context
This regression happened ~2-3 weeks ago, was first user-reported on 10/16 (apologies for filing the bug with delay).

Just checked and this looks fixed now

Just checked and this looks fixed now


Documentation update

Just a small one re the readme. The change actions referenced in the login template haven't been implemented in the controller.
  @action
  updateIdentification(e) {
    this.identification = e.target.value;
  }

  @action
  updatePassword(e) {
    this.password = e.target.value;
  }

thankyou new to ember and scratching my head for about 3 hours now trying to understand why the documentation was wrong


[MM-44655 ]: Add files_count column in ChannelInfo table and DB migration

Summary
Add files_count column in ChannelInfo table and DB migration.
This is required for changes coming in this PR https://github.com/mattermost/mattermost-mobile/pull/7223
Ticket Link
Fixes https://mattermost.atlassian.net/browse/MM-44655
Checklist

[ ] Added or updated unit tests (required for all new features)
[ ] Has UI changes
[ ] Includes text changes and localization file updates
[ ] Have tested against the 5 core themes to ensure consistency between them.
[x] Add a new column in the existing table and DB migrations

Device Information
This PR was tested on: Simulator iPhone 14, OS iOS 16.2
Screenshots
NA
Release Note
- Add files_count column in ChannelInfo table and DB migration

@enahum I thought we needed this for file count here.

I went through the design again, and I don't see the count in the design, but we do have the count in the Webapp channel info section.
Maybe @matthewbirtch can help us out here. Happy to leave it out

Ok I did not see the number besides the Files option in the prototype attached to the ticket. I want to confirm that is the case, then this PR would make sense.
can you confirm the migration actually sets the value to 0 on the existing ChannelInfo rows

@AshishDhama Did you mean like this or there is some other better way of testing it?
https://user-images.githubusercontent.com/16203333/226902951-4cf50bfe-3a5d-4429-a41c-96e3a43db2f4.mov

Yes that works!! thank you

@enahum I thought we needed this for file count here.
I went through the design again, and I don't see the count in the design, but we do have the count in the Webapp channel info section. Maybe @matthewbirtch can help us out here. Happy to leave it out

I removed the count because I wasn't sure we would actually be able to reliably get that number since I assumed files would be lazy loaded. For channels with a lot of attachments, this number could get huge if we returned all files in the channel from its inception.

I went through the design again, and I don't see the count in the design, but we do have the count in the Webapp channel info section. Maybe @matthewbirtch can help us out here. Happy to leave it out

@AshishDhama @enahum I removed the count because I wasn't sure we would actually be able to reliably get that number since I assumed files would be lazy loaded. For channels with a lot of attachments, this number could get huge if we returned all files in the channel from its inception.

Okay, that sounds great to me. I will remove the count and close this pr

@matthewbirtch That is the point of this new value. This is calculated in the server, and sent over with the "channel stats". Similar with the Member count. We are not really counting files or members. We are trusting the information that comes from the server is correct. Therefore... this information is not 100% reliable, and to keep it 100% reliable, we would need to handle several small scenarios (mainly post created / post deleted / post updated eventually). But... how reliable we need this number to be? If I remember correctly (I may be wrong) we get the channel stats when we open this screen to get the latest from the server. So the lack of reliability is about offline scenarios, and when a new post comes when we are already on this screen. Are we happy with that amount of lack of reliability?
Don't get me wrong. I am always happy to reduce the scope and simplify the code. But just wanted to make sure if we remove this number from here, is for the right reasons 😄

So, I don't think it's that important that this count is 100% accurate and kept up in real-time. If we can have a reliable number at the time of opening the channel info modal, then I'm good with that. Also, if this number is easy to get, then I'm fine with keeping it. In speaking with @AshishDhama that was a fairly heavy query to get because it had to go through all posts in the channel. If that's not the case and it's just a stat that comes with the channel from the server, then I'm good with keeping the number here.

@matthewbirtch That is the point of this new value. This is calculated in the server, and sent over with the "channel stats". Similar with the Member count. We are not really counting files or members. We are trusting the information that comes from the server is correct. Therefore... this information is not 100% reliable, and to keep it 100% reliable, we would need to handle several small scenarios (mainly post created / post deleted / post updated eventually). But... how reliable we need this number to be? If I remember correctly (I may be wrong) we get the channel stats when we open this screen to get the latest from the server. So the lack of reliability is about offline scenarios, and when a new post comes when we are already on this screen. Are we happy with that amount of lack of reliability?
Don't get me wrong. I am always happy to reduce the scope and simplify the code. But just wanted to make sure if we remove this number from here, is for the right reasons 😄

So, I don't think it's that important that this count is 100% accurate and kept up in real-time. If we can have a reliable number at the time of opening the channel info modal, then I'm good with that. Also, if this number is easy to get, then I'm fine with keeping it. In speaking with @AshishDhama, he mentioned that it was a fairly heavy query to get because it had to go through all posts in the channel. If that's not the case and it's just a stat that comes with the channel from the server, then I'm good with keeping the number here.

Yeah, about the heavy query, Agniva has created a pr to optimize that https://github.com/mattermost/mattermost-server/pull/22603
And it causes an issue if everyone fetches simultaneously, which will not happen in our case. One more thing to add here is we aren't adding new API calls. We already have that API in the app but are not utilizing the data.
That being said, I will add the edge cases, finish the work in this pr and merge it.
Thanks, everyone, for the help and the clarifications.

I think the one thing missing is the update of the docs

@larkox file count it available on all server versions.

@larkox @enahum Should I merge it wait til I finish the feature one, I am trying to open it for review tomorrow.

we could merge if is not going to be cherry-picked for 2.3


User Assigned Managed Identity support for ARC connectedk8s clusters

As a user of ARC connectedK8s cluster I would like to use User Assigned Managed Identity (UAMI) for authenticating with Azure services.
We are using Pod Identity feature in our AKS clusters for assigning UAMI to the pods accessing Hashicorp Vault and  Azure services. We would like similar support for ARC connectedK8s clusters on-premise. This will ensure we have a standard integration approach for apps deployed to K8s on-prem and cloud.
Use Azure Active Directory pod-managed identities in Azure Kubernetes Service

@SatyKrish we have user assigned managed identity and support for AAD pod identity in our roadmap. Can you open an issue here on UserVoice - https://feedback.azure.com/forums/925690-azure-arc. If other folks upvote the same ask, it can help our team prioritize this ask


test: add info api test

Signed-off-by: letty.ll<EMAIL_ADDRESS>
1.Describe what this PR did
Add demo info api test
2.Does this pull request fix one issue?

3.Describe how you did it
4.Describe how to verify it
5.Special notes for reviews

how to use “test-api” to test ？can u provide  simple doc ？

Yes, I think we need to add a target name integration-test in Makefile for users to easily test that. @Letty5411 @sunyuan3
Could you help that in contribution?

@zhubingbing this could be added later.

LGTM


Rework external arraybuffer and shared arraybuffer free operation

JerryScript-DCO-1.0-Signed-off-by: Gergo Csizi<EMAIL_ADDRESS>

Patch is ready for review

Patch is ready for review

Patch is ready for review

Patch is ready for review

@galpeter PTAL.

I am also working on something which affects the allocation, so this might be obsolote now.

Can we close this PR?


rework current front facing proxy

this replaced the current approach to caddy with a custom build of kweb and requires minimal configuration once checked out.
@zokradonh can you add an automated build for kweb and ldap-demo?

@zokradonh can you add an automated build for kweb and ldap-demo?

zokradonh/kopano_web
zokradonh/kopano_ldap_demo
Automatically built on push to zokradonh/kopano-docker.git

Great work! Getting rid of the docker.socket dependency was a great step further!


whether the flutter is suited for big projects with with low app size

sir when i flutter counter app run this app in emulator,it runs correctly .when i see a emulator the app size is 97 mb,the app size is large .
i have doubt if i use flutter for my project app size would bigger ,what is the solution for it
pls help me to clear this

@deepakzero  please read https://flutter.dev/docs/perf/app-size , you cannot use emulator/debug size as a proxy for the resulting artifact size

@jonahwilliams when i run the of to see app size
C:\Users\welcome\AndroidStudioProjects\flutter_app>flutter build apk --split-per-abi
Running Gradle task 'assembleRelease'...
Running Gradle task 'assembleRelease'... Done                      79.6s
√ Built build\app\outputs\apk\release\app-armeabi-v7a-release.apk (5.1MB).
√ Built build\app\outputs\apk\release\app-arm64-v8a-release.apk (5.4MB).
√ Built build\app\outputs\apk\release\app-x86_64-release.apk (5.6MB).

is this app take 5 to 6 mb for the complete installition from playstore

@jonahwilliams  iam beginner in flutter pls explain briefly about you cannot use emulator/debug size as a proxy for the resulting artifact size with simple example


REPLAY-1556 Do not mask tab selection for MASK_ALL privacy

What does this PR do?
A brief description of the change being made with this pull request.
Motivation
What inspired you to submit this pull request?
Additional Notes
Anything else we should know when reviewing?
Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] Make sure you discussed the feature or bugfix with the maintaining team in an Issue
[ ] Make sure each commit and the PR mention the Issue number (cf the CONTRIBUTING doc)

Codecov Report

Merging #1391 (f95b813) into feature/session-replay (a03d8ac) will decrease coverage by 0.04%.
The diff coverage is 100.00%.

@@                    Coverage Diff                     @@
##           feature/session-replay    #1391      +/-   ##
==========================================================
- Coverage                   83.54%   83.50%   -0.04%
==========================================================
  Files                         390      389       -1
  Lines                       13569    13558      -11
  Branches                     2190     2189       -1
==========================================================
- Hits                        11336    11321      -15
- Misses                       1560     1565       +5
+ Partials                      673      672       -1

Impacted Files
Coverage Δ

...essionreplay/material/MaskAllTabWireframeMapper.kt
80.00% <100.00%> (-3.33%)
:arrow_down:

...sessionreplay/material/MaterialExtensionSupport.kt
100.00% <100.00%> (ø)

...droid/sessionreplay/material/TabWireframeMapper.kt
93.33% <100.00%> (ø)

... and 9 files with indirect coverage changes