feat(config): add parameters 12, 50, 51 and 52 for Inovelli LZW31-SN

Sourced from https://github.com/InovelliUSA/SmartThingsInovelli/blob/b9fb2ad351b693a2a0bffb85debd98f27979fe44/devicetypes/inovelliusa/inovelli-dimmer-red-series-lzw31-sn.src/inovelli-dimmer-red-series-lzw31-sn.groovy

Inovelli doesn't have that same smart-things config that you referenced updated for the LZW31, but they should share all the same parameters that that LZW31-SN has, even down the same firmware version numbers.
https://support.inovelli.com/portal/en/kb/articles/firmware-change-log-lzw31-dimmer-switch-black-series
Should that be added here as well or a different PR?

I'm not sure that we're going to change this based on a user submitted device file from SmartThings. Are these in any of Innoveli's documentation?

I can copy the changes over to the LZW31 as well if you'd like it to be in this PR.
Only other differences I saw from their SmartThings config was preset values for the LED indicator colors

Sure

Just request a review once you are done with it 👍🏻

Requesting a review!

You can find an example of the partial parameter in packages/config/config/devices/0x0312/ms10z.json

I accidently closed this pull request somehow, can it be reopened?  Changes to partial parameters were done and removed the parameters in LZW31 BSD as requested.

It won't let me do it. @AlCalzone ?

Reopened it. Usually the author should be able to reopen though.

Hmm doesn't work. Did you remove all changes compared to my master branch?

I'll just re-open a new PR... I had too many branches and pushed the wrong one to my own.

Glad it wasn't just me. I have a button to reopen it and it initially said it did, but then it goes right back to closed.


My html is in a box

When I wrap my content with the xml tag it renders it in a box of html code. Can you refer me to the documentation with further instructions on how to use this?

Could show us some code, or an example page?
maybe a JSFiddle ?

Un-indent your markdown code. Code indented by 4 spaces in markdown will be formatted as a <pre> preformatted code.


Including user metadata in hybrid model

Hi,
This collie_recs looks really great, so thank you for your hard work. Think it fills a very nice gap for lots of people 😄
I was wondering if you had plans to incorporate user_metadata (in addition to item_metadata). If not, I'd be very happy to try and contribute.
If it were possible to include it, collie_recs would have similar functionality to popular (LightFM).

Hi @lgpreston75, thanks for making this issue!
Adding user metadata is a great idea and makes a lot of sense here. We haven't had a strong use case for that (yet) at ShopRunner, but it is certainly possible to just define user_metadata: Union[torch.tensor, pd.DataFrame, np.array] = None and use it the same way we do item_metadata (more or less) with something similar to https://github.com/ShopRunner/collie_recs/blob/aafcb41bac680d36c7d9e9d6537018e2544327d3/collie_recs/model/hybrid_pretrained_matrix_factorization.py#L229-L236
If you're up for it, it'd be fantastic if you could contribute this into Collie. For quick development + testing, there is even user metadata in Movielens 100k that would be perfect to use here (in the file u.user, see here for more details on that).
Feel free to discuss / ask any questions in this issue thread. Exciting!!
Cheers!

Awesome, I shall have a go!

Amazing @ahuds001 - you are amazing!!! 🤩

hybrid model will need to take either user or item metadata or both, but fail if neither is present, correct?
Exactly what I'm thinking - a hybrid doesn't make sense with at least some extra metadata.

for the tests we will have to simulate some user data to fit the movie recommendations dataset. I am thinking of two columns  like "goes to movie theaters" and "watches movies with family." Is that reasonable?
Actually, user data is included as part of the full MovieLens-100k dataset in the u.user file. You can read all about it here: https://files.grouplens.org/datasets/movielens/ml-100k-README.txt

To do this, we'll likely have to add a helper function along with the other MovieLens-100k functions to download and preprocess this user data, but it should mostly be copy-and-paste to add this in, just changing the filename to u.user and the column names.

not sure how to test whether order matters so I will default to item metadata model update first and user metadata model update second, is that ok?
For a first pass, that sounds totally okay to me. I imagine that it won't really matter too much (hopefully), but once this is implemented, we can surely do some more extensive testing.

@nathancooperjones so I think I have a working version of the hybrid model assuming my understanding above is correct. Should I continue with the pretrained version and then update the notebooks or how do you want to break this up some other way?

Hi @ahuds001. Sorry again for the delay, I was out this past week but I'm finally back and online for the foreseeable future 🎉

This update should work for both the hybrid model and the hybrid pretrained model, correct?
Ideally, yes, but we can break this work up however you'd like. I imagine the bulk of the changes should be copy-and-pastable between the two. Is this holding up for you?

The bulk changes would only have to occur within the hybrid_matrix_factorization.py and hybrid_pretrained_matrix_factorization.py, particularly the optimizer_config_list, the _setup_model function and the forward function need to be updated, correct?
It looks like for the hybrid_pretrained_matrix_factorization.py, no optimizer stuff should need to be modified (since the existing optimizer setup is so simple it should automatically apply to added in user-metadata).

For the hybrid_matrix_factorization.py (no pretrained) model, the optimizer setup might want to change a bit, depending on how you want to approach this. Right now, this code looks like this:
https://github.com/ShopRunner/collie/blob/88752fbafd5489a7568cd913e7e4c3256248d37f/collie/model/hybrid_matrix_factorization.py#L211-L218
Meaning at that optimizer stage, only parameters that start with the string metadata* or combined* (excluding the biases here, since that will stay the same no matter what) will be updated during training. Two ways you can approach this:

Item and user metadata layers are updated together in the same stage. In this case, nothing has to change, just ensure that the newly-added user metadata layers start with the string "metadata*" and it will automatically be included during optimization.
Item and user metadata layers are updated separately at first, then together (three stages total). This will be tricker, but could involve making stages as such to replace the code block above: 3.

             optimizer_config_list = initial_optimizer_block + [
                {
                    'lr': metadata_only_stage_lr,
                    'optimizer': metadata_only_stage_optimizer,
                    # optimize metadata layers only
                    'parameter_prefix_list': ['item_metadata', 'combined', 'user_bias', 'item_bias'],  # change here
                    'stage': 'metadata_only',
                },
                {
                    'lr': metadata_only_stage_lr,
                    'optimizer': metadata_only_stage_optimizer,
                    # optimize metadata layers only
                    'parameter_prefix_list': ['user_metadata', 'combined', 'user_bias', 'item_bias'],  # change here
                    'stage': 'metadata_only',
                },
                {
                    'lr': metadata_only_stage_lr,
                    'optimizer': metadata_only_stage_optimizer,
                    # optimize metadata layers only
                    'parameter_prefix_list': ['user_metadata', 'item_metadata', 'combined', 'user_bias', 'item_bias'],  # change here
                    'stage': 'metadata_only',
                },

I'm happy to talk with you a bit more about what I think the pros and cons of doing each approach will be, but that's what I see for the optimizer change.
As for both models now (finally, tangent is done), the _setup_model and forward methods will need to be modified, but the change should be simple-ish, since you're just essentially going to be copying what we do for item metadata and just renaming that to be user.
I think besides those two files and three methods, not much else should have to be updated to make this change work (ideally).

Changes to the base_pipeline.py would really only be about error handling (expanding the nulls check to include the user_metadata for example) and there would be no changes needed for the multi_stage_pipeline.py, correct?
This sounds right to me!

Would you like me to update the 05 and 06  notebooks in the tutorials folder as well to include the user data in the examples?
Yes please, that would be amazing! Not required, but appreciated.

I will duplicate all the existing tests for item_metadata to also include the user_metadata and will add some additional tests for when both metadata assets are passed to the model, any other test coverage that might be missing?
That also sounds right to me - I think all that should be more than enough coverage.

Let me know if there's any way I can help with this work at all. Thank you so much for taking this work on!!!!!

@nathancooperjones so I think I have a working version of the hybrid model assuming my understanding above is correct. Should I continue with the pretrained version and then update the notebooks or how do you want to break this up some other way?

Totally up to you. If you want to wait to merge this into the main repo, and instead create branches in your fork that I can review piece-by-piece, that is fine with me! I am happy to review as many or as few PRs as makes sense to break this work up into! My only restriction is that I think we should wait to merge this into the main branch here until all the work is complete and we can justify the version bump!

Hey @nathancooperjones thanks for the responses they are super useful! I had gone with the update separately approach for the Hybrid model and just realized that the pretrained model does not have stages or an optimizer_config_list, so I am assuming I'll have to make that change as well or am I missing something?

The hybrid_pretrained_matrix_factorization model in its current state shouldn't require any changes for the optimizer config list, making that model a bit easier to modify!

@nathancooperjones I added you as a collaborator to my fork so you can have a look before I move further. My only question on your comment above is that if the hybrid_matrix_factorization is following the stages approach and the hybrid_pretrained_matrix_factorization is not, then aren't they technically doing slightly different things that we should clarify in the documentation?


Add Stock Tracking model and app

This will allow for stock entities to be managed and use/status recorded.
Will have a management interface with specific group access controlled to it and API endpoints for stock tracking endpoints (vending, drink machines etc) to report use.

Until we have someone committed to upgrading the vending machine hardware and firmware to support stock tracking, I'm going to close this. If someone wants to take over this project feel free to post a new issue.


Temperature and salinity output

Many thanks for a  versatile model package. Would be very useful if temperature and salinity could be included in the output in addition to density.
Best regards
Stig

Thanks for the suggestion. I will implement this functionality in the next release.


Notification area icon chat balloon

Adding a reminder to the notification area helps to alleviate two shortcomings of toast notifications: first, they are intrusive; second, they are temporary.
The intention here is to have a chat balloon show up whenever the user has unread messages that flash the message bar.
This could be improved by adding a user option to enable/disable the feature.

Interesting. Scope of change is just changing the slimCat icon to one with a little balloon on it?


fix test for issue-3933

related: https://github.com/rust-lang/rustfmt/pull/3938
It needs to add a config file for the test. The default behavior is not to recursive now. And should ignore files except for lib.rs.

Thanks!


Age calculation fix

I had the minimum & maximum age declared as constants. But:
'A constant in Ruby is like a variable, except that its value is
supposed to remain constant for the duration of a program.'
They would never be updated after the initial load of the program. The
reason we haven't stumbled upon this bug just yet is because we deploy
pretty frequently.
Bug caught by Dan Palmer. All hail Dan.
/cc @dan-palmer

Great :+1:
Nice catch @dan-palmer


feat(Sync Logs): unify debug-sync logs between platforms

This pull request addresses the issue described here: Unify debug-sync logs between platforms #2714
As part of this change:

iOS: Update DetoxSync to the latest commit.
Android: Replace the old string sync-status with a JSON description
Unify debug-sync logs between the platforms, using a JSON formatter.

Examples for Android sync-status formatted messages:
detox[9160] INFO:  [APP_STATUS] The app seems to be idle

detox[9160] INFO:  [APP_STATUS] The app is busy with the following tasks:
• "LooperIdlingResource-2215-mqt_native_modules" (Native Modules Thread) is executing (native module calls).
• "LooperIdlingResource-2214-mqt_js" (JS Thread) is executing (JavaScript code).
• UI elements are busy:
  - Reason: UI rendering activity.

Examples for iOS sync-status formatted messages:
detox[9733] INFO:  [APP_STATUS] The app is busy with the following tasks:
• Run loop "JS Run Loop" is awake.
• There are 2 work items pending on the dispatch queue: "Main Queue (<OS_dispatch_queue_main: com.apple.main-thread>)".
• The event "Runloop Perform Block" is taking place with object: "JS Run Loop".
• The event "Runloop Perform Block" is taking place with object: "JS Run Loop".
• Run loop "Main Run Loop" is awake.
• The event "React Native (bundle load)" is taking place.

detox[9733] INFO:  [APP_STATUS] The app is busy with the following tasks:
• There are 1 work items pending on the dispatch queue: "Main Queue (<OS_dispatch_queue_main: com.apple.main-thread>)".
• Run loop "Main Run Loop" is awake.
• 1 enqueued native timers:
  - Timer #1:
    + Fire date: 2021-11-11 14:19:57 +0200.
    + Time until fire: 0.072.
    + Repeat interval: 0.
    + Is recurring: NO.

retest this please

@jonathanmos @d4vidi pushed native tests, integration tests are still missing.
However, this should not block the reviews.

Fixed and squashed.


Question about client side hydration

Hello! Is there any way we can know if a component is being server-rendered or client hydrated?
For my particular use-case, I do not want to load images when server rendering but do so when the component is hydrated in the client.
Something like this:
// HydratedComponent.svelte

import Image from 'ImageComponent.svelte'
...
<Image lazyLoad={inServerRenderMode} />
...

https://github.com/Elderjs/elderjs/blob/902d7f4352d50091f10d38314141462f112895a4/src/rollup/getRollupConfig.ts#L53
Is the relevant code. In the hospital so can’t update the docs. There is a matching one for the server. Feel free to PR the docs if you have time.

Thanks for your reply! If you have the opportunity to make me a contributor for the docs project I can make the PR. But it's no rush. Hope you get better soon!


Remote RPC bitcoin node

I try to use remote cyphernode with a remote node rpc it not working any help on that ?
https://www.quicknode.com/

Hi @BytesTrust
I don't know about QuickNode, but if you want to use your Bitcoin node RPC, you need to expose it outside of your Docker network (it's one of the questions during Cyphernode's setup).  Remember the username/password you entered for RPC during setup, those will be your credentials to use the RPC.  You can look at them in your bitcoin.conf generated file.
Of course, there are more considerations, but I don't know about your exact situation.  If you want to access the RPC remotely, you need to forward ports on your router.  If you'd like to expose the RPC on Tor, you need to do it manually inside the torrc file.
We don't recommend exposing the RPC interface to the outside world for security reasons.

Oops sorry I made a mistake, the rpc port is not exposed by the setup.  Only the p2p port.
I will write the steps to expose it manually outside of the docker network as well as Tor.

Basically I am trying to connect Cyphernode to a remote Bitcoin RPC node.
Umbrel
I try to connect  change Cyphernode bitcoin RPC Umbrel . i went to cyphernode bitcoin.conf and changed the rpc information and it dint work
I try to do the same thing with Quick node P2P connection information dint work to.
I try to change RPC information in cyphernode specter and click test dint work also. It seem cyphernode specter is broke almost 80 percent of feature as problem .. tor dont even work
I dont want to use cyphernode Bitcoin node RPC because the current pricing to host a bitcoin node in the clound with the size of the bitcoin db is very expensive  @Kexkey

Yes, that is because the RPC port is not publish outside the cyphernodenet Docker network.  If you want to publish it so you can access it from your host (at localhost:8332 for instance), you can add this in dist/docker-compose.yaml:
  ##########################
  # BITCOIN                #
  ##########################

  bitcoin:
    image: cyphernode/bitcoin:v22.0
    command: $USER /.bitcoin/entrypoint.sh

    ports:
      - "8333:8333"
      - "8332:8332"

Make sure to run ./start.sh to make the change effective.  If something strange happens, run ./stop.sh first, wait for the stack to shutdown, then ./start.sh.
If you re-run ./setup.sh, it will recreate docker-compose.yaml and overwrite your changes.  If you want to make them permanent, you need to add the 8332 line in the template file and build cyphernode yourself (with ./build.sh in root dir): cyphernodeconf_docker/templates/installer/docker/docker-compose.yaml.

Not working at all cyphernode is not able to reach the remote rpc bitcoin node running over tor on a other server

TL;DR: we don't support having an external Bitcoin node.
Oh you want to use an external Bitcoin node!  We used to support that 4 years ago but removed it because we had too many possible combinations to support.  While it is possible to do it, it can easily become a networking challenge, depending on the setup.
Ex.: I'd suggest you use a VPN between the Cyphernode instance and the Bitcoin node to make it secure.  Now, you need to decide what kind of VPN and you need to configure it.  I personally use Wireguard.  If you decide to deploy the remote Bitcoin node in the Docker Swarm, you need to use a VPN that is compatible with it; it must not be IPSec-based because the Encrypted Docker Overlay networks are IPSec-based (using protocol 50/ESP for eg).  On the cloud side, don't forget to open the required ports (depending on the VPN) and in Cyphernode, you will need to unlock the "external Bitcoin node" configuration here:
https://github.com/SatoshiPortal/cyphernode/blob/master/cyphernodeconf_docker/prompters/900_bitcoin.js#L36
and see if it works.  Last time we used that was in 2018 so I have no idea if it would still work just by adding the external choice.
If you only want to use the remote Bitcoin datadir (not the node itself), you could make a NFS drive to the bitcoin dir through, once again, a VPN and mount it on the host where your CN instance resides.  Then you could simply put that path in the CN setup for the Bitcoin data path.  It may be a bit easier.  But I remember reading about problems with Bitcoin Core when the datadir is on a network drive... I'm not 100% sure.

Where do you host cypher-node that wont cost 200 dollar per month ?


Auto-update go-utils to latest version

:robot: Beep boop I am a bot
This is an automatically created PR to change keptn/go-utils to version 406b1f6150da426ebc47c940042abb49e32f1633.
Please consult https://github.com/keptn/go-utils/actions?query=workflow%3A"Auto+PR+to+keptn%2Fkeptn" for more information.

Closing bacause breaking changes need to be addressed in PR https://github.com/keptn/keptn/pull/3249


Feature request, cleaner output.

Hello, thank you for your contribution to the open source community.
I'm using this plugin. But the content output by the node should be clearer. It is convenient for us to use the results detected by Yolo-world for processing.
Feature requests are as follows:

It is necessary to use keywords to detect input images. For example: through the keyword "car", only cars are detected in the picture.
More diversified output is needed. For example, you can directly output pictures in "BOX".
The "Mask" list can be output and the mask can be retrieved more clearly.
Make more expansions based on the characteristics of the new version of "YOLO".

Looking forward to your next release.

It is best to optimize the recognition of "face, hands, feet" and other content, because these are the parts that are difficult to solve for the SD model.
Users can extract them individually for secondary processing.
I believe this is more interesting.

Example:

Face,Hand and Person:
https://huggingface.co/Bingsu/adetailer/tree/main

You can download and use the Yolo-world model. You should upload it to models/ultralicsts folder.
CustomUltralyticsModelLoader:
https://github.com/kadirnar/ComfyUI-YOLO/blob/main/nodes.py#L342

Please ask how to better output "mask".
There are also how to use "PROBABILITIES", "KEYPOINTS" and "OBB".

What is better output? Want to increase accuracy?


RS485 to ttl & THC-S sensor

Sorry having couple issues again. Getting the following errors. I have the 4 THC-S wires hooked up as follows: black on gnd, brown on 12v, yellow on A and blue on B. I have 2 RS485 modules and THC sensors and have tried mixing and matching both to try and rule out hardware.

WARNING GPIO2 is a strapping PIN and should only be used for I/O with care.

[D][modbus_controller:043]: Modbus command to device=1 register=0x00 countdown=0 no response received - removed from send queue

  libraries:
    - Wire
    -<EMAIL_ADDRESS>
external_components:
  - source:
      type: local
      path: components
    components: [tdr_soil_sensor3]

### RS485
uart:
  id: modbus_serial
  rx_pin: 1
  tx_pin: 2
  baud_rate: 4800
  stop_bits: 1

modbus:
  id: modbus1
  uart_id: modbus_serial

modbus_controller:
  - id: con_modbus_name
    update_interval: 11s
    address: 0x1
    command_throttle: 150ms
    setup_priority: -10

sensor:
  - platform: modbus_controller
    name: "Moisture WC"
    id: WC
    address: 0x0000
    unit_of_measurement: "%"
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      lambda: return x / 10;
    state_class: measurement
  - platform: modbus_controller
    name: "Temp"
    id: C
    address: 0x0001
    unit_of_measurement: "°C"
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      lambda: return x / 10;
    state_class: measurement
  - platform: modbus_controller
    name: "Conductivity 1 dS/m = 1 mS/cm"
    id: EC
    address: 0x0002
    unit_of_measurement: "ms/cm"
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      lambda: return x / 100;
    state_class: measurement

Did you change the UART pins for your Atom? Coz 1&2 isn't for the Atom is it?

oh geez thanks. I had tried 26 and 32 before but looks like i had them backwards. All working now. Thanks again!

Glad you got it sorted. Maybe I should make some changes so the config is easy to uncomment or similar... I'll have a think 🤔


Quality coverage concept

Features

Added FilterTrait
Added LimitTrait
Added ModelTrait
Fixed bugs with updating model active flag
Minor doc changes to keep scrutinizer happy
Added more testing for Merchant, Locations and Ips

@wnowicki Here's the changes I managed to get done

Where are the additional tests?

@wnowicki ready for review

Perfect! Well done!


Online-1035 Display upgrade dialog when Ecommerce enabled

Pre-Flight checklist

[ ] Screenshots and design review for any changes that affect layout or styling

[ ] Desktop screenshots
[ ] Mobile width screenshots

[ ] Testing

[ ] Code is tested
[ ] Changes have been manually tested

What are the relevant tickets?
Fixes https://github.com/mitodl/mitxonline/issues/1035
What's this PR do?
Display upsell messages in the dashboard when e-commerce is enabled.
How should this be manually tested?

Set ENABLE_UPGRADE_DIALOG to False.
Enroll in the audit version of a course.
Visit the dashboard, Enrolled card should not display the upsell message.

Screenshots (if appropriate)
Flag Disabled:

Flag Enabled:

Codecov Report

Merging #1065 (6283234) into main (46ecf4d) will decrease coverage by 1.58%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #1065      +/-   ##
==========================================
- Coverage   85.92%   84.34%   -1.59%
==========================================
  Files         285      144     -141
  Lines       10898     7032    -3866
  Branches     1174     1174
==========================================
- Hits         9364     5931    -3433
+ Misses       1325      893     -432
+ Partials      209      208       -1

Impacted Files
Coverage Δ

ecommerce/models.py
88.79% <0.00%> (ø)

frontend/public/src/components/EnrolledItemCard.js

...ublic/src/containers/pages/login/LoginEmailPage.js

frontend/public/src/lib/notificationsApi.js

frontend/public/src/lib/notificationsApi_test.js

frontend/public/src/reducers/notifications_test.js

...end/public/src/components/forms/ChangeEmailForm.js

.../src/containers/pages/settings/EmailConfirmPage.js

frontend/public/src/components/forms/EmailForm.js

frontend/public/src/lib/courseApi_test.js

... and 132 more

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


VS2015: consuming Result type compiles, but fails at runtime

The same code compiled with VS 2017 works.

See how it tries to load FSharpResult from my own Assembly, not from FSharp.Core.
I don't think there is anything that can be done, just wanted to let you know because I couldn't find any information about this.

I think it's because you are the very first person who uses Result at all :)

@0x53A
FSharpResult is an FSharp 4.1 feature and requires the 4.1 version of the FSharp.Core.dll.  On VS 2015 the build will try to use the 4.0 compiler and FSharp.Core.  Which will result in the compiler not being able to find the type.
I hope this helps?
Kevin

Further, if you explicitly reference FSharp.Core <IP_ADDRESS> with F# 4.0 then it contains struct union types - which F# 4.0 will not understand.
F# 4.0 won't give you a particularly good error message - indeed now I think about it you will probably just generate invalid code.  We didn't future proof F# 4.0 in this regard.

Thats exactly what I did - I added FSharp.Core <IP_ADDRESS> via Nuget to VS2015 and compiled code consuming the struct union. It compiles but fails at runtime.

F# 4.0 won't give you a particularly good error message - indeed now I think about it you will probably just generate invalid code. We didn't future proof F# 4.0 in this regard.

I know why it happens, and I know there is nothing you can change, I just wanted to document it =)
The big issue is, that currently our solution can be opened and successfully compiled with both VS 2015 and VS 2017, but VS 2015 will create invalid code. Even worse, if you first open VS2015, and compile the project, then open the solution with VS2017 and press debug, it won't rebuild (because the timestamps match) and launch with the invalid code.
In my case, this is not that big of an issue, we have a small team, and I can just tell everyone to move to VS2017. What would be even better would be if there was a way to prohibit compilation with VS 2015.

IF I do not use any new features of F#4.1, is it safe to reference FSharp.Core <IP_ADDRESS> from fsc 4.0? I do not really need to use the Result type, it was just handy.

Yes, AFAIK

@0x53A ,  In order to reduce the problems identifying new and old features, you can use the multi-targeting feature to compile against FSharp.Core.dll v4.0.  This won't protect you against new language features like struct tuples, records and unions, because that is a really hard problem to solve.

Let me know if you have any other issues.

@KevinRansom  I am hitting https://github.com/Microsoft/visualfsharp/issues/2399 , so if I want to compile with VS2017, i need to reference Core <IP_ADDRESS>.

Bugger about #2399 .  Switching to VS2017 is a great choice.  I have to say I love what everyone has done.

@KevinRansom the problem with multi-targetting is that it is tied to which FSharp.Core version you'll end up with, which leads to many headaches due to binding redirect issues.
The main reason most F# users relies on FSharp.Core from nuget.org and use paket is that they want the binding redirects issue to be taken care automatically.

Closing as by design (somewhat unfortunately, but the past is hard to change)


test(zipAll): add test against breaking unsubscription chain

Relates to #875.

Merged with 70266d0... thanks again @luisgabriel


build: avoid signal handling for all envoy mobile builds

Signed-off-by: Alan Chiu<EMAIL_ADDRESS>For an explanation of how to fill out the fields, please see the relevant section
in PULL_REQUESTS.md
Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
[Optional Fixes #Issue]
[Optional Deprecated:]

I'd suggest we hold off on merging this at least until we can observe the effects in the wild. Even then, I'm not certain if it makes sense to commit this as the library default. I've opened a tracking issue with instructions for disabling handling.


Add test cases for apis.

What this PR does / why we need it:
Currently, GetPlanInProgress and NoPlanEverExecuted in instances_types has no unit tests. Added tests for them.

Fixes #

@harryge00 ping!   what is next here?

Unable to interactive rebase to fix DCO.   There is no DCO issue here, all code is modifications and additions to test which are KUDO specific and isn't possible to put us at risk.

understood. squash and merge with Signed-off-by - this can be done with the Chrome extension. yay for being an admin!

@harryge00 please at some point confirm you can meet the https://developercertificate.org/ requirements with posting your sign off in this PR, otherwise we will need to re-write your work. thank you!

sure... shouldn't need a plugin to add a signoff to the merge commit (we just won't get a green build here)

@kensipe of course you don't, but it's an easy way to just add it in real quick. :)


Memory allocated in Client.get_tensor() cannot be freed by caller

Description
There is no way for a caller to deallocate the memory allocated by the client when calling get_tensor(). This is a shortfall in our API as it leads to an inevitable memory leak. We probably have related issues with get_dataset(),  get_script(), and get_model().
How to reproduce
Call the API routine; observe that there is no interface to deallocate the memory that has been allocated on behalf of the caller.  Since the memory was allocated via operator new, there isn't even access to the underlying delete operator in three of our four client languages.
Expected behavior
Need to add an interface to deallocate memory allocated for the caller
System
Any

This was by design and the memory is tracked in the Client object for reclamation


DOCS: Update AWS docs to keep consistency with Docker docs

Checklist

[x ] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[ ] Links to related issues (if applicable)
[ ] Tests for the changes have been added/updated (if applicable)
[ ] Docs related to the changes have been added/updated (if applicable). If a new feature has been added a Usage Guide has been added for the same.
[ ] For any breaking change/potential downtime/deprecation/big changes an entry has been made in Updating DataHub

@coderabbitai review


What is a good default production-ready RabbitMQ cluster?

We have been talking with @xtreme-sameer-vohra @benmoss @gabo1208 and @salaboy what a default production-ready RabbitMQ cluster may look like in the context of eventing-knative. This was a follow-up to Eventing RabbitMQ Delivery Semantics started with @embano1.
We have touched up on the following:
Cluster size
The default RabbitMQ cluster size in eventing-rabbitmq is single node. All documentation, testing and even performance benchmarks - https://github.com/knative-sandbox/eventing-rabbitmq/blob/c79d3aa6c6241bd72f907fe0bce81d158a1a1794/test/performance/broker-rmq/README.md - use this.
While this is great when getting started, the official recommendation is a minimum of 3 nodes: https://rabbitmq.com/production-checklist.html#distribution-considerations-cluster-size.
There is a related Production Example documentation in the rabbitmq/cluster-operator repository which may prove to be useful for this conversation.
Queue Type
The default is classic durable queue with message persistence.
I was mentioning that a Quorum Queue is a likely better default choice. Even if a 3-node cluster is used, all non-replicated queues will be unavailable for the entire duration of their node unavailability. This means that just a subset of queues will be unavailable (requires queues to be spread across all nodes in the cluster), which is better than all of them being unavailable (the single-node scenario above). In terms of tradeoffs, quorum queues use more memory than classic queues, and we also know that 10k quorum queues is too many for a single RabbitMQ cluster (the cost of consensus is too high).
Streams were also mentioned in terms of the "queue" with lowest overhead and highest throughput, but their behaviour differs from the typical RabbitMQ queue and may not be what we are looking for in this context. It's still worth mentioning them as they are the future building block of RabbitMQ streaming, which fits well in the Knative eventing ecosystem.
Broker / Trigger properties
Rather than exposing RabbitMQ-specific properties to eventing-rabbitmq users, my proposal was to consider wrapping cluster sizing and queue type in more generic properties, like ha or replication-factor and perform the translation to RabbitMQ translation internally. In this context, @xtreme-sameer-vohra was wondering whether these annotations would be declared on the Broker level, and then propagate through all associated objects, like Triggers, Sinks, etc.

What happens next?

[x] Share on knative.slack.com #eventing & #eventing-rabbitmq and ask for input
[ ] Document a default production-ready RabbitMQ cluster (include a manifest, similar to rabbitmq/cluster-operator/docs/examples/production-ready/rabbitmq.yaml)
[ ] Learn what is a good production-ready RabbitMQ cluster for @embano1
[ ] Maybe document this real-world use case ☝🏻

Thanks for the detailed context @gvmw

I was mentioning that a Quorum Queue is a likely better default choice. Even if a 3-node cluster is used, all non-replicated queues will be unavailable for the entire duration of their node unavailability.

That seems to be a pretty compelling reason for enabling eventing-rabbitmq user's to leverage Quorum Queues or even having them be the default queue type.

In terms of tradeoffs, quorum queues use more memory than classic queues

Do we know how much more memory ?
Noob question, in the case of a single node cluster, is a Quorum Queue == Classic Queue ?

and we also know that 10k quorum queues is too many for a single RabbitMQ cluster (the cost of consensus is too high).

Currently, without a dead letter sink configured, there would be 1 queue created for every Trigger. With a dead letter sink configured on a Trigger, there would be 2 queues for every Trigger. A limit of ~5K triggers is worth documenting but doesn't sound like a blocker.

Rather than exposing RabbitMQ-specific properties to eventing-rabbitmq users

Definitely makes sense to reduce the cognitive load. Could we go a step further and not require application developers to have to know/worry about this at all or is there a reason why application developers should have to make this choice? Conversely, the cluster operators are likely to have opinions and we should give them the ability to configure the properties.

That seems to be a pretty compelling reason for enabling eventing-rabbitmq user's to leverage Quorum Queues or even having them be the default queue type.

Yes, I think so too. I also think that @kjnilsson will be most interested in this use-case.

Do we know how much more memory ?

It depends on message size, throughput & replication factor as well as x-max-in-memory-length and/or x-max-in-memory-bytes across all quorum queues.
Out of the box, RabbitMQ nodes are expected to have 2GB memory just for the RA WAL: https://rabbitmq.com/quorum-queues.html#resource-use . This is one of the reasons why our production-ready example starts at 10Gi memory & 4CPUs (virtual CPUs, the cloud norm, are OK).

Noob question, in the case of a single node cluster, is a Quorum Queue == Classic Queue ?

They behave like Classic Durable Queues, and I'm not sure if they use the WAL if there are no replicas. For a production deployment of eventing-rabbitmq, my default queue type recommendation would be Quorum Queue.

Currently, without a dead letter sink configured, there would be 1 queue created for every Trigger. With a dead letter sink configured on a Trigger, there would be 2 queues for every Trigger. A limit of ~5K triggers is worth documenting but doesn't sound like a blocker.

I would play this safe and set and recommend 1K triggers. We wouldn't want a slow cluster, and 2K quorum queues sounds like a comfortable upper limit. I would be most comfortable if we recommend what we benchmarked and proved that works. Number of clients, message payloads and the replication factor, as well as multiplexing (message fan-out scenarios) can play a significant role in this. Networks and disks (SSDs can be slow in the cloud) can make a big difference, which is why a canonical example like the Production ready one, is really helpful when reasoning about limitations. While this has not changed in years, it captures well the point that I'm trying to make here: https://github.com/rabbitmq/workloads

Definitely makes sense to reduce the cognitive load. Could we go a step further and not require application developers to have to know/worry about this at all or is there a reason why application developers should have to make this choice? Conversely, the cluster operators are likely to have opinions and we should give them the ability to configure the properties.

I can imagine application developers that know RabbitMQ and will want to make this choice, but based on my experience, the majority doesn't care: they just want safe defaults that work as advertised. Most surprises come from unrealistic expectations, and not stating what can be expected from the default configuration, and just letting users figure it out creates massive headaches for everyone. After 5-6 years of fighting on this hill, I can see where this is going ⛰

+1 on using quorum queues by default (unless there's a strong reason against it in favor of classic durable queues)
+1 on upper limit of 1k triggers. Users can always deploy a separate RMQ cluster/broker to increase capacity/throughput if needed.

What is a trigger (from a RabbitMQ POV)? a consuming application?
What is the expected throughput of a trigger and what would the average message size be? Do all trigger queues need to have their own dlx queue or could this be shared across the vhost? How are the dead-letters consumed? Could the dead-letter queue be a shared stream?
If the throughput isn't likely to be very high you could try to configure a lower WAL to reduce peak memory use.
We've done some optimisations recently around running many quorum queues, 2k seems like a comfortable limit but you can probably stretch this a bit further unless the total throughput is high.
In addition to setting x-max-in-memory-length=0 I also recommend setting x-max-length as well as x-delivery-limit to avoid excessive backlogs and processing attempts. See: https://gist.github.com/kjnilsson/4a681bedd17c33c09220f97c7c2a0dcf

What is a trigger (from a RabbitMQ POV)? a consuming application?

Yes, code see here: https://github.com/knative-sandbox/eventing-rabbitmq/blob/main/pkg/dispatcher/dispatcher.go

Do all trigger queues need to have their own dlx queue or could this be shared across the vhost?

Both is possible, though the common approach seems to be a shared DLQ used in Knative triggers.

@kjnilsson: What is a trigger (from a RabbitMQ POV)? a consuming application?

Yes.

@kjnilsson: What is the expected throughput of a trigger and what would the average message size be?

This is difficult to answer, even as an estimation. To put it in a different form, I want to drive my car as fast as it's safe and legally allowed to. In this car <-> RabbitMQ analogy, what I am really interested in is the top speed that the car (RabbitMQ) can achieve.
Let's assume that messages are 10KiB in size and replication factor is 3. We already have the 2k quorum queue limit. For simplicity, we can use 1 publisher & 1 consumer per quorum queue. Does this sound like a realistic real-world scenario @embano1 for you?

@kjnilsson Do all trigger queues need to have their own dlx queue or could this be shared across the vhost?

I am not sure, but I would guess that each queue gets its own dlx queue.

@kjnilsson: How are the dead-letters consumed?

Ad-hoc, most likely getting dropped as a result of hitting the queue length limit, which should be set by the way - we have not discussed this yet.

@kjnilsson: Could the dead-letter queue be a shared stream?

That is an interesting proposition which is likely to generate more questions. In the interest of keeping the first iteration simple, I would propose not.

@kjnilsson: If the throughput isn't likely to be very high you could try to configure a lower WAL to reduce peak memory use.

Yes, that is a very good idea. When you say "high throughput" what do you have in mind in terms of messages / second & message payload?

@kjnilsson: We've done some optimisations recently around running many quorum queues, 2k seems like a comfortable limit but you can probably stretch this a bit further unless the total throughput is high.

What number do you have in mind when you think "high total throughput"?

@kjnilsson: In addition to setting x-max-in-memory-length=0 I also recommend setting x-max-length as well as x-delivery-limit to avoid excessive backlogs and processing attempts. See: https://gist.github.com/kjnilsson/4a681bedd17c33c09220f97c7c2a0dcf

This is great, thank you!
A few follow-up questions came up today when we were discussing this. These are my top ones:

If we continue with classic queues, what does the upgrade to quorum queues look like?
Does it make sense to use quorum queues if we default to a single node?
Should we enforce a queue limit if we use quorum queues?

I think that the above deserve a discussion since there is a lot more to it. Reaching out privately so that we can leverage that high-bandwidth, synchronous communication and capture the conclusions here, rather than continuing with GitHub 🏓

This is what we came up with @kjnilsson.
This will need to be benchmarked, but it's a starting point for a production-ready default:

3-node cluster

4 vCPUs
10GiB
500GiB SSD disks - on GCP this translates to max. X IOPS & X MB/s throughput (throughput is more important than IOPS by the way)

autoheal if there is no object churn, otherwise pause_minority
quorum queues with 3 replicas each and the following properties set via a policy (not queue arg. because PR #N)

max-in-memory-length=0 doesn't keep any messages in limit
max-length=10000 <- is a limit of 10k messages enough? we are assuming that messages are at most 10KiB (common JSON payload), but it may need changing based on memory / disk etc. available
overflow=reject-publish so that new messages are reject if the limit is reached (no existing messages will be dropped)
delivery-limit=10 poison message handling, same setting as Azure Service Bus <- this can be lowered or increased based on the use-case, but it's worth setting this regardless

limit quorum queues to 5000
maybe disable management metrics: https://www.youtube.com/watch?v=NWISW6AwpOE
limit connections to 10k per node (30k in total across the entire cluster) <- this is here as a conversation starter, not a definitive number
limit channels to 10k per node (30k in total across the entire cluster) <- ideally, there will be a single channel per connection. This is here as a conversation starter, not a definitive number

Thanks @gvmw @kjnilsson

@kjnilsson Do all trigger queues need to have their own dlx queue or could this be shared across the vhost?
I am not sure, but I would guess that each queue gets its own dlx queue. Maybe @xtreme-sameer-vohra or @benmoss can add more nuance to this. @embano1 is Customer 0 in my mind, so he might be able to chime in.

This is configurable by the user. They can

configure it on a Knative Broker. All Triggers that don't specify their own will share the Broker's dlx queue ( N queues : 1 DLX queue)
configure it on a Trigger. This Trigger's queue would get its own dlx queue (1 queue: 1 DLX queue)
Diagram

Were these discussed ?

A few follow-up questions came up today when we were discussing this. These are my top ones:
If we continue with classic queues, what does the upgrade to quorum queues look like?
This may impact what would be in scope for MVP vs what we'd want to tackle subsequently
Does it make sense to use quorum queues if we default to a single node?
It would be useful to understand if folks can still use a single node setup and not lose messages that have been accepted. The caveat being lack of HA (which might be acceptable in certain scenarios)


fix exit value of dkgcli and memcoin

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall First build on dkgcli-error at 99.133%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

cli/node/memcoin/mod.go
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
99.1%

Covered Lines:
14290

Relevant Lines:
14415

💛  - Coveralls

This encompasses the changes brought in #245


feat(icon): support the search-result language

The search-result language is a language that’s builtin to VS Code. It’s used for the advanced code search results. The icon was extracted from the VS Code code base.
Changes proposed:

[x] Add
[ ] Delete
[ ] Fix
[ ] Prepare

@remcohaszing a question about the light icon. It feels like the color variation is minimal. It almost seems the same as the normal one. Was the icon set from VS Code like that already?

The icon itself was extracted from https://github.com/microsoft/vscode/blob/main/extensions/theme-seti/icons/seti.woff. The colors come from https://github.com/microsoft/vscode/blob/main/extensions/theme-seti/icons/vs-seti-icon-theme.json#L193-L200. So for VSCode the impact to change a color is less impactful than for vscode-icons.
I agree the color difference is very minimal. IMO it would be fine to either merge this as-is or pick one color, where I don’t have a strong preference which one.


Errors are badly formatted

Provide a general summary of the issue in the Title above
Expected Behavior
I should see detailed information
Current Behavior
Store responded with status: 400 on: /providers Validation failed: [object Object],[object Object],[object Object],[object Object],[object Object]

Possible Solution
Not obligatory, but suggest a fix/reason for the bug
Steps to Reproduce
Create provider with invalid definition
Your Environment
using stating to publish capabiltiies to production

According to https://datatracker.ietf.org/doc/html/rfc7807#section-3.1 detail should be string. The way sevice-client prints the error is correct.
Options:
1.Print schema validation errors in Brain and send detail as string instead of json
2.Define custom application/problem+json type
RFC7807 requires that type is in uri format, could be https://superface.ai/app-problems/json-schema-validation-error. We can then extend problem json document with custom property validation-errors and use it in service-client to print details about the error.

So the issue is on service side in exception filter which doesn't ensure that the detail is a string.

Right, I will open PR with fix in Brain.


Feature: Add shell context menu for widgets

Resolved / Related Issues
Items resolved / related issues by this PR.

Adds context menu items for widgets
Closes #5888

Validation
How did you test these changes?

[x] Built and ran the app
[x] Tested the changes for accessibility

Should we switch to CommandBarFlyout and display primary buttons for actions like "Open in new tab"?

I don't know if we can add the helper class for the Button_RightTapped because some use Grid

Just took a quick look and this much closer to what I had in mind. Will do a full review later but it's looking good.

@hecksmosis functionality looks good too, I wonder if we should move options like properties and open with to the main menu. Just trying to think of ways to make it a little more consistent with the right click menu in the different layout modes.

@hecksmosis functionality looks good too, I wonder if we should move options like properties and open with to the main menu. Just trying to think of ways to make it a little more consistent with the right click menu in the different layout modes.

I think properties is in the main menu already

Do you want to add properties to recent files?

Yes, properties and open with.

Any idea why it's showing these icons?

Yes, properties, open with and add to favorites.

Add to favorites wouldn't make sense as only files appear there @yaira2

Good point, comes back to the fact that we don't show pinned files yet. We can probably hide the menu item for that.

The icons are because I didn't notice

I fixed the icons and added the open with menu, but I haven't been able to add the properties menu as it shows incomplete, help would be appreciated in that aspect.

I think it's okay for now, I'll try to finish reviewing today.

@d2dyno1 Is it ok now?

/azp run

It's not loading on recent files for me but I don't want to hold this back so let's merge as is.


FAT-7774 - Bulk Operation test failures

Purpose
Fixing FAT-7774 - Karate test fail: [firebird/mod-bulk-operations] ModBulkOperationsApiTest {2}  firebird/mod-bulk-operations/features/items.feature
Approach
Replacing '' to '#null' for some fields
TODOS and Open Questions

[ ] Use GitHub checklists. When solved, check the box and explain the answer.

Learning
Describe the research stage. Add links to blog posts, patterns, libraries or addons used to solve this problem.

Verified on rancher env


Update containerd to the patched version based on v1.6.6

As the version of containerd in the CCv0 branch of Kata Containers is being bumped to v1.6.6, we should bump the version here and generate a new image with that.

https://github.com/fidencio/container-engine-for-cc-payload/commit/1cdd8f1e5c9cb5d87d59f3e8cf78b610f13055f5 solves this issue.


Add support for emf/wmf images conversion into html

It's known issue that GDI consumes huge amounts of memory when dealing with emf/wmf.
On the other hand, image/x-emf, image/x-wmf are valid types of images in both OpenXML and RTF specs.
While it still possible to replace these images with converted analogs using OpenXML SDK, it would be useful to allow convert a document with them into html (instead of just ignoring silently).
It's much simpler to convert them into another format in ImageHandler(png, for instance, because Chrome and Firefox don't understand emf/wmf formats), instead of replacing the ImagePart.
Moreover, the changes are really small, and, as the benefit, give the responsibility to the consumer what to do with these formats (they can be ignored as well).
Thanks in advance

Agreed!  I ran into this issue today.  I can convert the x-emf, convert to a png, and create the embedded image string but no have mechanism to insert.  Furthermore, there is no commenting in the HTML (or warning) that the image was excluded.
The change does seem rather trivial.  If nothing else, allowing the user to perform the conversion on these files through the image callback.

Closing all issues as this repo is being archived and will no longer be maintained by Microsoft. The project is licensed for continued use and development by forking to your own repo.


Set FullName to login as fallback if name is not set in GitHub

Fixes #391

Current coverage is 49.46% (diff: 0.00%)

Merging #398 into master will decrease coverage by 0.14%

@@             master       #398   diff @@
==========================================
  Files            39         39
  Lines          1685       1690     +5
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits            836        836
- Misses          786        791     +5
  Partials         63         63

Powered by Codecov. Last update 90e3d00...80b766b


Using FluentFtp from PowerShell

FTP OS: Windows
Computer OS: ? Windows Server 2019
I needed to call FluentFTP from PowerShell so I wrote 5 functions that demonstrate how to send, receive, list, rename, and remove files from PowerShell. Please let me know if you are interested in my PowerShell sample code

Ok cool send them over.

Here you go
[AdvantageCS]https://htmlsig.com/t/000001BWV0CF
Ray Zick / Product Manager
ray.zick<EMAIL_ADDRESS>+1<PHONE_NUMBER>
http://www.advantagecs.com/
[Twitter]https://htmlsig.com/t/000001C2P908[Facebook]https://htmlsig.com/t/000001BY7TCS[LinkedIn]https://htmlsig.com/t/000001BXNHX3[Youtube]https://htmlsig.com/t/000001BWSDXV
CONFIDENTIAL NOTICE: This email communication and any attachments may contain confidential and legally privileged information for the exclusive use of the designated recipients named above. Any unauthorized review, use, storage, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply mail and destroy all copies of the original message.
From: Robinicks<EMAIL_ADDRESS>Sent: Friday, July 26, 2019 1:03 AM
To: robinrodricks/FluentFTP<EMAIL_ADDRESS>Cc: Ray Zick<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [robinrodricks/FluentFTP] Using FluentFtp from PowerShell (#434)
Ok cool send them over.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/robinrodricks/FluentFTP/issues/434?email_source=notifications&email_token=AESOJIHDYK3HR26QRZHM2BTQBKAONA5CNFSM4IG3F4LKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD23QB5A#issuecomment-515309812, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AESOJIEJDM4T4DWS2JUFXTLQBKAONANCNFSM4IG3F4LA.

I didn't get anything. If you want to send files either attach them straight to the github page (https://github.com/robinrodricks/FluentFTP/issues/434) or upload them with wetransfer and send a link.

Fluent-Functions.zip

This looks like it worked

Thanks I'll check it.

What an awesome job, thanks! I've added it to the repo...

Also added into the FAQ - https://github.com/robinrodricks/FluentFTP#powershell


De-indexed pages still appearing in coverage

My website got a japanese keyword hack, and also a gibberish keyword hack. We have since rectified the problem, but Google still thinks our website has hundreds of pages from the attack. We have removed all of these pages and even submitted them for removal a month ago, but it has not disappeared.
This is affecting our ranking.
Page Affected: https://developers.google.com/web/fundamentals/security/hacked/fixing_the_japanese_keyword_hack
What needs to be done?
We need a way to manually request review or recrawl of our entire website after a hack
Here are the URL's appearing in Google's Coverage

We have nowhere near this many pages on our website, and they are mostly spam ones. How can we go about getting a manual review of our website


DashboardAnalysis and DashboardMonitor mock data conflict

When visiting https://preview.pro.ant.design/dashboard/analysis you can see the "Stores Sales Trend" chart is full of data.

After I install the project on localhost using the following, the data is no longer loaded:
// Install empty project of Ant Design Pro
npm create umi
Select ant-design-pro
Select TypeScript
// Add all blocks from demo preview
npm run fetch:blocks
// run project
npm start
If you login and navigate to http://localhost:8000/dashboard/analysis no data is displayed in the same chart:

I've figured out that the mock api where the data should be loaded for DashboardAnalysis is being overridden by the mock data for DashboardMonitor which response doesn't contain the expected data for DashboardAnalysis of course.
I've managed to fix this by changing the following line of code, located at src/pages/dashboard/analysis/service.tsx

.. changing it with the following line of code:

And then changing the following line of code located at src/pages/dashboard/analysis/_mock.ts

... changing it with the following line of code:

It now works as expected also on localhost:

It would be great if you guys could make sure that online version and localhost version would match also the loaded mock data as it's expected by users.

great job. can you give a pr?


Loading page

I created a simple loading page component that can be used anywhere. Let me know if there is anything you would like to change.

Hey, I've removed the react package and created a custom loading spinners. Since it's a workout page, I think it looks cool. Let me know if you there's anything you want me to change.

No problem, glad I could help!


Add bounding box

Draw a bounding box to the model. If there is a some sort of domain or bouding_box variable present in the json, use it otherwise look for the data boundary.

Added as a test in #10, opted to keep it there. It should change in the near future, but for now I will keep it like that.


Rename crate to comply with new naming rules

Very quick change. Probably breaks stuff with respect to crates.io.

Thanks for the PR! Package names, however, are allowed to have hyphens in them, just not the names of targets themselves. Along those lines this should actually be ok, you can just depend on it via extern crate conduit_mime_types.


sample az command fails

az storage account create \
    --name mystorageaccount \
    --resource-group myResourceGroup \
    --location eastus \
    --sku Standard_RAGRS \
    --encryption blob

with
az storage account create: error: ambiguous option: --encryption could match --encryption-services, --encryption-key-type-for-table, --encryption-key-type-for-queue

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: f8ace770-a027-43a6-6b39-d95f3d9686fe
Version Independent ID: 2ffaacd1-87f8-3bfa-48fb-a545d9cc2ced
Content: Azure CLI Script Sample - Rotate storage account access keys
Content Source: articles/storage/scripts/storage-common-rotate-account-keys-cli.md
Service: storage
Sub-service: blobs
GitHub Login: @tamram
Microsoft Alias: tamram

I assume it should have been --encryption-services

Thanks for the feedback! We are currently investigating and will update you shortly.

@franzinc - Thanks so much for pointing out this error. I've fixed the script, and the change should go live by tomorrow.
#please-close


Add Dialect notifications

Feature

update dialect's packages and legacy modal notifications
integrate Dialect notifications into hub components

Dialect's notifications modal in legacy UI
https://user-images.githubusercontent.com/16071062/198609649-8c63765a-1cab-43fa-9176-df5027ad5939.mov
Dialect's notifications modal in the hub components

How it looks after pulling main branch


Generate examples json files at test time

Is your feature request related to a problem? Please describe.
Right now maintainers have to run the examples generator manually to get JSON example files to pass test_examples.py, adding an (unnecessary) extra step
Describe the solution you'd like
Probably add a workflow that runs the examples generator on new commits and pushes the updates to the repo, before running tests. Or alternatively re-generate the examples at test time to confirm they pass

On further thought about this I think if the examples JSON files are just being used to test that round-tripping the examples works, they should just get integrated directly into the tests and the .json files shouldn't be stored in the repo itself. This would be a lot less painful then re-generating constantly


[risk=no] Security patches for jackson

Addresses
Update to the latest dropwizard version which addresses the latest jackson issue.
Covers these SC issues:

https://broadinstitute-dsp.sourceclear.io/workspaces/jppForw/issues/vulnerabilities/7039263/18759598
https://broadinstitute-dsp.sourceclear.io/workspaces/jppForw/issues/vulnerabilities/7039263/18759597
https://broadinstitute-dsp.sourceclear.io/workspaces/jppForw/issues/vulnerabilities/7039263/6580955
https://broadinstitute-dsp.sourceclear.io/workspaces/jppForw/issues/vulnerabilities/7039263/6580954
https://broadinstitute-dsp.sourceclear.io/workspaces/jppForw/issues/vulnerabilities/7039263/6580953
https://broadinstitute-dsp.sourceclear.io/workspaces/jppForw/issues/vulnerabilities/7039263/6580952
https://broadinstitute-dsp.sourceclear.io/workspaces/jppForw/issues/vulnerabilities/7039263/6580950

Coverage remained the same at 62.254% when pulling f96bdf2568bf9ac988dfc84ed8bb014861c5d39c on security into b1955a72d6f81dd97b37f3434e158f91cae10eee on develop.


Error loading dependencies with Composer

thomasbelknap@IKW-BELKNT-MBP one-vision % composer require burzum/cakephp-imagine-plugin
Using version ^4.0 for burzum/cakephp-imagine-plugin
./composer.json has been updated
Running composer update burzum/cakephp-imagine-plugin
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires burzum/cakephp-imagine-plugin ^4.0 -> satisfiable by burzum/cakephp-imagine-plugin[4.0.0].
    - burzum/cakephp-imagine-plugin 4.0.0 requires imagine/imagine 0.6.* -> found imagine/imagine[v0.6.0, v0.6.1, 0.6.2, v0.6.3] but it conflicts with your root composer.json require (1.2.4).

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.

I cannot downgrade Imagine because it tells me:
- Root composer.json requires imagine/imagine 0.6.0, found imagine/imagine[v0.6.0] but the package is fixed to 1.2.4 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.

Any help would be greatly appreciated!

I've updated it to * in the 4.0 branch. Let me know if it works and I'll tag a new version.

Sorry, no! I'm getting the same error. For the record, I'm requiring via command line - I've verified that there's no record in the composer.json file.
composer require burzum/cakephp-imagine-plugin

You need to do composer require burzum/cakephp-imagine-plugin:dev-4.x

Message: Could not find package burzum/cakephp-imagine-plugin in a version matching "dev-4.x" and a stability matching "dev".


Created methods for a create new file and its support

Forked the repo, just for adding this small function. Hope this helps this open source project for the good.
I have added "Create a new file" option in the menu and support for it in the java classes using the method launchnewFileDialog() which is based on your launchnewDirDialog() method.
It's working perfect and now we can create a new file using lrkFM. But i think operations like copy, move and rename are not working properly for files and folders, though delete is working. Could you please look onto it after merging the changes.

Hi,
first of all thanks for your contribution!
I'll look into it as soon as I have time.
Unfortunately move is currently not working at all (#34). :disappointed:

😃Oh am happy to contribute even more to this project when i get time.
Also, sometimes the file operations such as move, copy when is selected will not update in the menu as i have noticed like for the same file/dir. Maybe you should start from there. Anyways, you're welcome.


Suggestion of Dockerfile for easy installation

I have found it rather tedious to deploy torch  and its dependencies on my computer.
Here is a dockerfile I wrote to do the job pretty much automatically (note that it requires the nvidia wrapper to docker):
https://gist.github.com/pixelou/e06d8b049001254575d745be2b2b0402
FROM nvidia/cuda:8.0-cudnn5-devel

WORKDIR /root

RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y --no-install-recommends openssl ca-certificates \
	git-core cmake curl wget unzip gfortran libreadline-dev ncurses-dev \
	libgoogle-glog-dev libboost-dev libboost-thread-dev libopenblas-dev

# Core Torch packages
RUN git clone https://github.com/torch/luajit-rocks.git
RUN cd luajit-rocks && mkdir build && cd build \
    && cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \
             -DWITH_LUAJIT21=ON -DLUAJIT_ENABLE_LUA52COMPAT=ON .. \
    && make && make install
RUN luarocks install torch
RUN luarocks install trepl

# Common torch package
RUN luarocks install luafilesystem
RUN luarocks install --server=http://luarocks.org/dev luash
RUN luarocks install nn
RUN luarocks install optnet
RUN luarocks install xlua
RUN luarocks install cudnn

# Extra torch package
RUN apt-get install -y --no-install-recommends libjpeg-dev libpng-dev \
	graphicsmagick-imagemagick-compat
RUN luarocks install image
RUN apt-get install -y --no-install-recommends python2.7-dev python-numpy
RUN git clone https://github.com/facebook/thpp.git
RUN cd thpp/thpp && mkdir build && cd build \
    && cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \
       -DNO_THRIFT=ON -DNO_FOLLY=ON -DNO_TESTS=ON .. \
    && make && make install
RUN luarocks install fbpython

# Pull project
RUN git clone https://github.com/1adrianb/human-pose-estimation

CMD /bin/bash

deploy like so:
curl -O https://gist.githubusercontent.com/pixelou/e06d8b049001254575d745be2b2b0402/raw/9585f22ba540a2fb07b54c4c3b8e314a53010199/Dockerfile
nvidia-docker build -t humposest -f ./Dockerfile
nvidia-docker run -it humposest bash

@pixelou thanks a lot for your contribution, it will definitely come in handy.
If you want to make a pull request I am happy to add it to the instructions.

Hello,
Sure, I will use it for a few days to see wether I forgot any dependencies and then prepare a PR.


Would Love To Use This!

Hello, I'd love to have this integration! I live in an RV full time with the Easy Touch and I have home assistant up and running on many things.
I'm sorry to ask this, but could you possibly provide some basics of what I need to do to set this up please? I've looked at each of the files you listed and see the code, but I'm not sure what to do with it, where to put it, how to call it, etc.
I see that I need BLE_GATT.  I have HA setup on an older HP laptop using the hassio. As I look at the instructions for BLE_GATT I believe I can get it installed.
Any chance you could share how you have it setup in Home Assistant? Are you doing service calls? Automations? If you could possibly show me your code inside HA to get going I'd be grateful!  And if you have a fund somewhere I can send some money too I'd be happy to contribute. I appreciate your time!

I don't use it with HA, but I would imagine it would be pretty easy to integrate using mqtt.
If you do make an integration happy to add the code.
Basic steps are to add your bluetooth mac address and password, then follow the commandline instructions. you will have to modify it a bit to add in controlling heat, but that should be simple changing the mode.

Ok, thanks for a point in the right direction! I'll see if I can get this figured out and I'll report back here if I get things working.


Update black box classifier

Signed-off-by: Beat Buesser<EMAIL_ADDRESS>Description
This pull request updates the black box classifiers and adds unit tests.
Fixes #999
Type of change
Please check all relevant options.

[ ] Improvement (non-breaking)
[x] Bug fix (non-breaking)
[ ] New feature (non-breaking)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Codecov Report

Merging #1000 (ef488d6) into dev_1.6.1 (c201058) will increase coverage by 0.07%.
The diff coverage is 100.00%.

@@              Coverage Diff              @@
##           dev_1.6.1    #1000      +/-   ##
=============================================
+ Coverage      62.49%   62.56%   +0.07%
=============================================
  Files            220      220
  Lines          19012    19012
  Branches        3452     3452
=============================================
+ Hits           11881    11895      +14
+ Misses          5820     5806      -14
  Partials        1311     1311

Impacted Files
Coverage Δ

art/estimators/classification/blackbox.py
88.33% <100.00%> (+23.33%)
:arrow_up:

art/attacks/evasion/brendel_bethge.py
20.60% <0.00%> (-0.08%)
:arrow_down:

art/defences/detector/poison/activation_defence.py
84.61% <0.00%> (+0.33%)
:arrow_up:


Make pmd-rule description in SonarQube have proper layout

Currently, it is one paragraph of text:

Make Problem and Solution a separate paragraph and make 'Problem:' and 'Solution:' in bold.
The same holds for 'Note:' and 'Exceptions:'.

When examples are included, also for 'Example:'.
'More information' too.
And make the link text more descriptive.
Like:


Add wixproj as XML

WiX uses wixproj for projects.

Please see the guidelines to add support for a new extension to Linguist. In particular, notice the requirement on in-the-wild usage.

@pchaigno It is a well known extension.
Creating a .wixproj file
Not sure what I have to show with usage: http://imgur.com/a/Uk2JG


Add a section containing Microsoft 365 groups location

[Enter feedback here]
I would add a comment that you can include group mailbox and site using Microsoft 365 groups location.
There is a section that explains Files in Teams but no comment or section that include both Exchange and SPO location like in the article: https://docs.microsoft.com/en-us/microsoft-365/compliance/create-retention-policies?view=o365-worldwide
"Configuration information for Microsoft 365 groups: A retention policy applied to a Microsoft 365 group includes both the group mailbox and site. A retention policy applied to a Microsoft 365 group protects the resources created by a Microsoft 365 group, which includes Microsoft Teams."
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 147f081a-c235-3400-23c9-8b4de7c9bbbc
Version Independent ID: 0d8958fb-247e-c05b-999e-3cbd93e943c9
Content: Learn about retention policies for Teams - Microsoft 365 Compliance
Content Source: microsoft-365/compliance/retention-policies-teams.md
Service: o365-seccomp
GitHub Login: @cabailey
Microsoft Alias: cabailey

@OritOrlanczyk  Thanks for your feedback - good point and now expanded that section we had about files so it includes when to select Office 365 Groups vs SharePoint sites "https://docs.microsoft.com/en-us/microsoft-365/compliance/retention-policies-teams?view=o365-worldwide#additional-retention-policies-needed-to-support-teams"


show local time in Masternodes tab

Having UTC here could be helpful when you debug smth but for normal user it could be confusing to see UTC time in GUI.

Maybe better to have this in an if statement when fDebug enabled.

Actually every datetime displayed in wallet (txes, last block, startup etc) is a local one. Corresponding RPC (masternode list full) returns timestamp which is not converted into any datetime format at all. This was really just an easier/lazier way to see lastPing datetime and to find corresponding lines in debug.log without doing "complex" math (+N hours to convert to UTC :D ) while debugging sync issues etc. This is not needed anymore in release version imo - you won't be able to resolve any issues looking at wallet screenshots, you'll need to get debug.log from users  anyway. Having said all this - I don't think we need to display it in UTC here or to have such an option.


docs: fix incorrect variable names

Hi there,
I noticed that items is no longer returned from the hook in the latest release, so I changed it to virtualItems in the docs. Would be great if you could also update the version of react-virtual used in the Codesandbox!
Kind regards,
Hampus Kraft.

Sidenote: The default import of react-virtual is currently broken for TypeScript users, they have to explicitly import the index.js file, since the types/index.d.ts file is currently empty (https://twitter.com/pnfcre/status/1259011000646369280). Until new types are added, would it be possible to add declare module 'react-virtual/index to that file? Thanks!

Yes! Please open a PR for that?

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

Sure thing!


Live

Test PR

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/apps-in-teams-meetings/design/designing-apps-in-meetings.md
91
22
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/teams-apps-in-meetings.md
100
1
link
:white_check_mark:

msteams-platform/bots/how-to/authentication/add-authentication.md
90
61
link
:white_check_mark:

msteams-platform/bots/how-to/conversations/send-proactive-messages.md
95
8
link
:white_check_mark:

msteams-platform/concepts/build-and-test/deep-links.md
92
31
link
:white_check_mark:

msteams-platform/concepts/build-and-test/prepare-your-o365-tenant.md
91
9
link
:white_check_mark:

msteams-platform/concepts/deploy-and-publish/appsource/prepare/include-saas-offer.md
95
12
link
:white_check_mark:

msteams-platform/concepts/deploy-and-publish/appsource/prepare/monetize-overview.md
95
2
link
:white_check_mark:

msteams-platform/includes/tabs/dotnet-upload-to-teams.md
94
3
link
:white_check_mark:

msteams-platform/includes/tabs/node-js-yeoman-prereq.md
90
7
link
:white_check_mark:

msteams-platform/m365-apps/extend-m365-teams-message-extension.md
96
12
link
:white_check_mark:

msteams-platform/m365-apps/extend-m365-teams-personal-tab.md
94
22
link
:white_check_mark:

msteams-platform/m365-apps/prerequisites.md
90
23
link
:white_check_mark:

msteams-platform/mstdd-landing.yml
100
0
link
:white_check_mark:

msteams-platform/resources/messaging-extension-v3/create-extensions.md
87
17
link
:white_check_mark:

msteams-platform/resources/messaging-extension-v3/search-extensions.md
90
25
link
:white_check_mark:

msteams-platform/resources/moodleInstructions.md
92
20
link
:white_check_mark:

msteams-platform/resources/schema/manifest-schema-dev-preview.md
90
28
link
:white_check_mark:

msteams-platform/resources/troubleshoot.md
91
10
link
:white_check_mark:

msteams-platform/samples/app-templates.md
91
47
link
:white_check_mark:

msteams-platform/samples/app-with-collaboration-controls.md
93
14
link
:white_check_mark:

msteams-platform/samples/collaboration-controls-limitations.md
92
8
link
:white_check_mark:

msteams-platform/samples/configure-tasks.md
90
5
link
:white_check_mark:

msteams-platform/samples/virtual-table-entity-references.md
91
39
link
:white_check_mark:

msteams-platform/samples/virtual-tables-api.md
90
7
link
:white_check_mark:

msteams-platform/samples/virtual-tables-for-tasks.md
92
18
link
:white_check_mark:

msteams-platform/sbs-botbuilder-linkunfurling.yml
86
33
link
:white_check_mark:

msteams-platform/sbs-botbuilder-taskmodule.yml
83
44
link
:white_check_mark:

msteams-platform/sbs-bots-with-sso.yml
90
32
link
:white_check_mark:

msteams-platform/sbs-file-handling-in-bot.yml
86
30
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Learn Build status updates of commit edfe85e:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.vscode/settings.json
:white_check_mark:Succeeded

msteams-platform/apps-in-teams-meetings/design/designing-apps-in-meetings.md
:white_check_mark:Succeeded
View

msteams-platform/apps-in-teams-meetings/teams-apps-in-meetings.md
:white_check_mark:Succeeded
View

msteams-platform/assets/images/first-party-license-mgt/commercial-marketplace.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/first-party-license-mgt/home-page.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/first-party-license-mgt/list-of-plans-created.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/first-party-license-mgt/partner-center-home-page.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/first-party-license-mgt/plan-listing.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/first-party-license-mgt/plan-overview.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/first-party-license-mgt/pricing-availability.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/first-party-license-mgt/saas.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/first-party-license-mgt/saas-isvpilot.png
:white_check_mark:Succeeded
View

msteams-platform/bots/how-to/authentication/add-authentication.md
:white_check_mark:Succeeded
View

msteams-platform/bots/how-to/conversations/send-proactive-messages.md
:white_check_mark:Succeeded
View

msteams-platform/concepts/build-and-test/deep-links.md
:white_check_mark:Succeeded
View

msteams-platform/concepts/build-and-test/prepare-your-o365-tenant.md
:white_check_mark:Succeeded
View

msteams-platform/concepts/deploy-and-publish/appsource/prepare/include-saas-offer.md
:white_check_mark:Succeeded
View

msteams-platform/concepts/deploy-and-publish/appsource/prepare/monetize-overview.md
:white_check_mark:Succeeded
View

msteams-platform/includes/tabs/dotnet-upload-to-teams.md
:white_check_mark:Succeeded

msteams-platform/includes/tabs/node-js-yeoman-prereq.md
:white_check_mark:Succeeded

msteams-platform/m365-apps/extend-m365-teams-message-extension.md
:white_check_mark:Succeeded
View

msteams-platform/m365-apps/extend-m365-teams-personal-tab.md
:white_check_mark:Succeeded
View

msteams-platform/m365-apps/prerequisites.md
:white_check_mark:Succeeded
View

msteams-platform/mstdd-landing.yml
:white_check_mark:Succeeded
View

msteams-platform/resources/messaging-extension-v3/create-extensions.md
:white_check_mark:Succeeded
View

This comment lists only the first 25 files in the pull request.
For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


Add support for BaseUriPlugin plugin

Q
A

Bug?
no

New Feature?
yes

Version
next

The BaseUriPlugin is not supported by the bundle yet. We should fix that.
The implementation is very similar to how we do it with AddHostPlugin plugin.

First see "AddHostPlugin" documentation. (add_host)
Add an entry in plugins.xml
Update Configurations.php
Add the actual service declaration in the extension class.

@llaakkkk is that something you want to look into?

great opportunity, I will do it!


EventProf Minitest integration

What is the purpose of this pull request?
It implements Minitest integration for EventProf (#21)
What changes did you make? (overview)
Custom Minitest plugin and reporter were added
Integration specs (based on the same Rspec ones) were added
Is there anything you'd like reviewers to focus on?
If there are no critical comments about I'll update EventProf guide

Thanks for the review!
I've already fixed that issue, but found one more little bug I want to fix before update the PR.
Do you have some suggestions about version in changelog?

@IDolgirev

Do you have some suggestions about version in changelog?

Let's use "master"; I'll update it before releasing.

Thanks, got it!

Frankly, I don't know what I was thinking about at that moment. Sorry for such a silly mistake :(
Also there is one more thing I need to mention - even all specs are green I think that EventProf guide need to be updated a little bit with some caveat about minitest-reporters. When the user unintentionally run specs without prepending them with bundle exec, he (or she) will get an error, because Minitest initialize all its plugins from minitest/*_plugin.rb of the every entry in the $LOAD_PATH, and minitest-reporters as just installed gem is available there. And when this gem is not properly configured as I mentioned in the guide, some hooks around the test are become unavailable which causes the error.
At the moment I suggest to update the guide with that, but will try to investigate it deeper. WDYT?

At the moment I suggest to update the guide with that, but will try to investigate it deeper

Sounds good!

@IDolgirev Thank you for your help! I need your full name in Russian for CultOfMartians and your Twitter nickname (if any) for the announcement.

 Glad to help :)
My name in Russian is Илья Долгирев  and Twitter nickname is @Dolgirev

@IDolgirev Take a look, please: wrong event count https://travis-ci.org/palkan/test-prof/jobs/282329413

Thanks, already trying to reproduce it locally.
As you see the whole group is missing in the results.
I'm not quite good at multithreading and probably need some advices but at the first glance the reason is inside report hook when the notification to finish last group is send to profiler it should be handled first, and only then we can use results.
Is it possible to get wrong order of execution of lines inside the same method due to the nature of JRuby?

Is it possible to get wrong order of execution of lines inside the same method due to the nature of JRuby?

Yep, that may be the case. Not sure, but maybe Minitest automatically runs in multithreaded mode in JRuby.

Well, I was totally unlucky yesterday so I didn't even get a chance to reproduce the error. Single spec, whole suite, random order, specific seed from Travis' failed job - nothing :(
Maybe you have some tricks how to deal with such type of errors?

Have you tried JRuby?)
Let's not spend too much time; I will try to investigate the next this problem occur.
Thank you!

In that case it was definitely JRuby because my machine started to work like any Dyson devices :)
And yes, I've checked it via htop :)
OK, feel free to ping me if you need some help with that next time.


apa102: refactor raster functions

Benchmark runs: https://gist.github.com/benlazarus/82f8c77e0bdeb2ce45a20ae1121273a5

I also reproduce locally the ~25% performance reduction for BenchmarkDrawNRGBAColorful. It's probably why I had created the separate loops in the first place.
I'd prefer that performance for this path to not regress. FYI, I had requests to create a fast path for image.RGBA too, since some drawing libraries use this instead of NRGBA.

Okay.  After tinkering a little, I think you're right, it's probably due to moving the branches into the loop.  I have an idea for a solution (which can also fast path RGBA).  It might be a day or two before I have time to play with it.

It's weird, as some benchmarks like BenchmarkWriteDim significantly increased in performance. But since the benchmarks are being changed, it's hard to make apple to apple comparison. Would you mind splitting this PR in two? Let's commit the benchmark refactor first, then we can properly assess the performance impact.

The reason I ask is that I did observe the performance degradation (not too bad just 10%) on BenchmarkDrawNRGBAColorful. I'm fine to live with it, but having two separate commits would be helpful when looking back.

Sure thing, I'll do it later tonight.  Though I didn't change any of the existing benchmarks here -- I just added a couple new ones.

Done.  I squashed everything down here and put the benchmark changes into https://github.com/google/periph/pull/259

gochi

gohci

(Typing is hard)
Thanks!


Removed randomAccess check when publishing FMP4 segments

In our use-case we have a camera which has a large GOP size which means we receive an IDR frame every 7 seconds. When we browse to the HLS endpoint our video starts to play after about 7 seconds and it doesn't start from the beginning of the video, but actually 7 seconds into the video. This is all using HLS variant lowLatancy.
When we check the requests and responses in our browser we see that the request to index.m3u8 takes about 7 seconds. After debugging the code I noticed that the code responsible for handling the index.m3u8 request waits for a minimum of 2 segments before it continues and returns the response. As our GOP size is 7 seconds this explains the long initial wait before our video starts.
As we can't change the GOP size in our cameras and the ffmpeg re-encoding solution doesn't really perform all that well, I looked for another solution which resulted in this PR. I removed the radomAccess (IDR frame) condition when publishing segments in muxer_segmenter_fmp4.go.
Result: index.m3u8 requests takes less than a second now and the video starts to play almost immediately without seemingly any problems or hiccups.
I figure this solution might not adhere to the specs of HLS, so I don't know if this is a valid solution or if we should look into something else to get better performance for our setup?
Thanks for looking into this

Hello, in HLS segments have to contain at least a random access frame otherwise the stream can't be decoded.
Non-random access frames, as the name implies, can only be decoded after their reference random access frame has be decoded.
Since clients may connect at any time and they choose the starting segment among the ones available, and segments get periodically deleted, this implies that all segments have to contain at least a random access frame, and this frame is placed at the beginning of the segment since all previous frames can't be decoded.
This patch works only because there's a random access frame in one of the available segments, not in everyone, but since segments get periodically deleted, the segment with the random access frame may get deleted and the stream may get undecodable at any time
Use parameter "hlsAlwaysRemux" to solve your issue.

Hi @aler9
Thanks for your answer, although setting hlsAlwaysRemux is not a solution to our problem. Please let me further explain our use-case.
We have created a SPA which enables users to playback recordings from multiple camera's in a specified timeframe. The recordings are exposed as RTSP (h264) streams from the camera's and we use MediaMTX to encode them to LL-HLS streams.
When the user has made their selection of cams and timeframe, it results in more than 1000 recordings which we will add all at once to MediaMTX (sourceOnDemand paths, source RTSP h264).
In the application when the user starts playback we only request the HLS video streams from MediaMTX for the recordings currently at the playback marker. This enables us to configure MediaMTX just once for the whole session without putting a lot of strain on the camera's. If we use hlsAlwaysRemux (and without sourceOnDemand) it would result in 1000 simultaneous requests/streams from the camera's which isn't feasible.
The problem we are currently experiencing is with the start-up time before playback begins. As the camera's use a GOP size of about 8 seconds, MediaMTX waits for the first segment to be complete (8sec) before it returns the index.m3u8 file and start its playback. Sadly the GOP size can't be altered and re-encoding them using FFMpeg to force more IDR frames doesn't seem stable (lot's of 500 errors).
While experimenting with MediaMTX and HLS.js, I was hoping it's a proper solution to start playback when there are only partial segments of the first segment available AND the first partial contains an IDR frame. To test this I have altered MediaMTX to expose the following playlist when requesting stream.m3u8 for the first time:
#EXTM3U
#EXT-X-VERSION:9
#EXT-X-TARGETDURATION:8
#EXT-X-SERVER-CONTROL:CAN-BLOCK-RELOAD=YES,PART-HOLD-BACK=1.00000,CAN-SKIP-UNTIL=36.00000
#EXT-X-PART-INF:PART-TARGET=0.40000
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-MAP:URI="3aa0058f7342_init.mp4"
#EXT-X-GAP
#EXTINF:8.24000,
gap.mp4
#EXT-X-PART:DURATION=0.24000,URI="3aa0058f7342_part0.mp4",INDEPENDENT=YES
#EXT-X-PART:DURATION=0.40000,URI="3aa0058f7342_part1.mp4"
#EXT-X-PRELOAD-HINT:TYPE=PART,URI="3aa0058f7342_part2.mp4"

Notice the #EXTINF gap.mp4 which hls.js needs to properly parse the playlist.
This works and playback starts immediately. I tried to verify this approach with the LL-HLS specs, but it didn't give me a straight answer if starting with partials before a first segment has completely loaded should be allowed or not.
Hopefully you can give us an answer to this question.


add configurable csv.field_size_limit in SchemaGenerator

File "/lib/python3.11/site-packages/bigquery_schema_generator/generate_schema.py", line 190, in deduce_schema
for json_object in reader:
File "/lib/python3.11/csv.py", line 111, in next
row = next(self.reader)
^^^^^^^^^^^^^^^^^
_csv.Error: field larger than field limit (131072)
version = '1.5.1'

You have a CSV file with a field that is longer than 128 kiB? Are you sure you don't have a delimiter problem?
In any case, if you are using SchemaGenerator as a python library, you can call csv.field_size_limit() directly from your code, there is no need to add plumbing through the SchemaGenerator class.
If you are calling generate_schema wrapper script from the command line, then we will need to add a command line flag, add tests, add documentation, etc, etc. It's not a high priority for me, so I recommend you hack your copy of the source code. If you are able to polish your code, maybe send me a PR.

Thanks for the prompt answer.
Yes, unfortunately this csv file is the result of flattening certain first levels of a very large and extremely hierarchically nested json file.  Ok, I 'll experiment with csv.field_size_limit() first locally on the user level script.

Instead of flattening to CSV, can you flatten to JSON, using something like jq?
Also, you don't have to use the generate_schema wrapper script included by my package. It's very easy to create your own wrapper script. Take a look at https://github.com/bxparks/bigquery-schema-generator/blob/develop/examples/csvreader.py. You can just copy that script, add your csv.field_size_limit(), and customize it as you wish.

Indeed, jq is employed in the intermediate filtering and flattening procedures.
CSV was used as the final format since it simplifies QC of the created schema:)
I had already included field_size_limit in our pipeline script, but it took some time for me to figure out what was going on and why this csv.field_size_limit() was required at all.
So my suggestion (to add it into your script/package) is just to save other people' time.

I think it would be incredibly rare for someone to produce a CSV file with a field longer than 128 kiB. I don't think it is worth spending time and effort on such a rare edge case, since they can workaround it by creating a custom script. But thanks for reporting it. This ticket will provide them with useful information.


Add phpExtensions{ssh2,msgpack}

Description of changes
This is a continuation of work in #106867, hence after merging this, #106867 can be closed
Things done

Built on platform(s)

[x] x86_64-linux
[x] aarch64-linux
[ ] x86_64-darwin
[x] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

One of my only straight up opinions here is related to the choice of the commit message prefix for the commit where you add yourself to the maintainer list:
lib/licenses: add ostrolucky

Other than that we just have to let the eval run @ofborg build php81.extensions.ssh2 php81.extensions.msgpack php82.extensions.ssh2 php82.extensions.msgpack

Whoops. Commit message changed

@GrahamcOfBorg build php81.extensions.ssh2 php81.extensions.msgpack php82.extensions.ssh2 php82.extensions.msgpack

@GrahamcOfBorg build php81.extensions.ssh2 php81.extensions.msgpack php82.extensions.ssh2 php82.extensions.msgpack

What's up with this? https://logs.nix.ci/?key=nixos/nixpkgs.220814&attempt_id=c2389a3e-d269-4314-afbf-bbada6ec9898

Where is this coming from ?!?!!?

From here

But locally it's working for me, although I can't check x86_64-darwin specifically.

@GrahamcOfBorg build php81.extensions.ssh2 php81.extensions.msgpack php82.extensions.ssh2 php82.extensions.msgpack

@GrahamcOfBorg build php81.extensions.ssh2 php81.extensions.msgpack php82.extensions.ssh2 php82.extensions.msgpack

@ostrolucky Thank you for your contribution! :slightly_smiling_face:

Thanks @ostrolucky !


Drop Python 2.6

Elementary, new projects should not use unsupported Python versions...

+1 from me :+1:

+1. Could consider dropping 3.3 too, it's not in the test matrix.
Reasons for dropping old ones

https://en.wikipedia.org/wiki/CPython#Version_history

2.6

Unsupported since 2013-10-29
https://snarky.ca/stop-using-python-2-6/
http://www.curiousefficiency.org/posts/2015/04/stop-supporting-python26.html
http://www.python3statement.org
Current pip 9 deprecates Python 2.6 support, pip 10 won't support it (https://github.com/pypa/pip/issues/3955)
Not much PyPI traffic (June 2016) https://github.com/pypa/pip/issues/3796

3.3

Unsupported since 2017-09-29
pip 10 will deprecate Python 3.3 support, pip 11 won't support it (https://github.com/pypa/pip/issues/3796)
Very little PyPI traffic (June 2016) https://github.com/pypa/pip/issues/3796

Here's the pip installs for cookiecutter from PyPI for the last month, showing very little 2.6 and 3.3:
$ pypinfo --percent --pip cookiecutter pyversion
python_version percent download_count
-------------- ------- --------------
3.6              87.0%        467,538
2.7              12.2%         65,623
3.5               0.6%          3,079
3.4               0.2%            952
3.7               0.0%            201
3.3               0.0%            180
2.6               0.0%             17

Fixed in #394


Reverse the output for Backward LSTM

As discussed in the two tickets: #523 and also in https://github.com/microsoft/onnxruntime/issues/4187 there is an issue with current backward LSTM output when compared with other runtimes. This is fixed in this code.

@wenbingl linux tests are failing. I would like to know is there anything I need to do from my code or some pipeline issue?

@wenbingl linux tests are failing. I would like to know is there anything I need to do from my code or some pipeline issue?

it looks there are some errors in flake8 checking.
keras2onnx/ke2onnx/lstm.py:231:1: E302 expected 2 blank lines, found 1
keras2onnx/ke2onnx/lstm.py:262:1: E302 expected 2 blank lines, found 1

@buddhapuneeth , can you update your PR for the merge?

@buddhapuneeth , can you update your PR for the merge?

Sure. I will do.

@wenbingl @jiafatom Thanks for your suggestions. I made the changes now. Please review let me know your feedback.


config.plugin for plugins file/folder names with -

A '-' in the plugin files folder name seems to confuse twig:
Does not work:
{{ config.plugins.my-plugin.enabled }}
Does work:
{{ config.plugins.my_plugin.enabled }}
So {{ config.plugins.advanced-pagecache.enabled  }} does not deliver the status of the plugin.
same seems to be the case for the parameter names.

- is not an acceptable char in Twig attributes, so you must use {{ config.plugins['my-plugin'].enabled }}

Just read the comment on the referenced issue


Add Jellyfin support (fully open-source Emby fork)

We've already included two media servers, Plex and Emby, so this is probably a "nice to have". However, since it is a fork of Emby, it should be trivial to add (I know, I know, famous last words).
https://github.com/jellyfin/jellyfin
https://hub.docker.com/r/jellyfin/jellyfin/
Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps. Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support. There are no strings attached, no premium licenses or features, and no hidden agendas (...)

I was actually looking into this last weekend. I plan to test it out and if it works well then I will add this in a PR.

Jellyfin was added, I think this can be closed now.


upgrade support

add rem unit support
add sticky positioning support

I've been using rucksack-css for a while and in the last couple days noticed that those two definitions weren't supported by the plugin; for rem it returns the value with empty unit (i.e. 2rem -> 2) and for sticky it returns an error with toString position stripping.
I also added the -webkit-sticky support manually to solve issues with autoprefixing.

Looks great! Thanks 👍