Additional switches all have the same name

Fan: Haiku I Series
Firmware: 3.1.1
Plugin version 0.5.3
Hi there,
I set up my Haiku I today and after updating the firmware to 3.1.1 everything started working in the Home app.
I noticed though that each of the additional switches all default to having the same name in Home.app
In my case they were all "Master Bedroom Fan" which is the fan name that I specified in the config file. I turned each of the functions on one by one and checked the state in the BAF app and then renamed them which was fine but it would be nice if they each had unique names when they first get added to HomeKit.
The switches I enabled were:
"showWhooshSwitch": true,
"showFanAutoSwitch": true,
"showLightAutoSwitch": true,
"showEcoModeSwitch": true
I then tried grouping each of these switches together which wasn't a good idea because HomeKit wouldn't allow me to ungroup them once I worked out that it wasn't going to do what I wanted (the ungroup button wouldn't show). I was hoping to just group those switches together in one tile but then have the 4 switches show when tapping on the tile but I've now learned that's not how HomeKit works with groups.
I have the Home+ app installed and I was able to ungroup from within it but I wondered if it was because they all had the same name initially that I had troubles ungrouping them.
Using the show as a single tile doesn't work for me as I'd still like to have the fan and light as separate tiles and then the advanced options all on one tile.
Great job on the plugin, other than this little hiccup, it's all working very well so far.
Thanks,
Brad.

Hello<EMAIL_ADDRESS>addresses this naming issue brought on by iOS/iPadOS 16.  Since you've already done the work to rename the switches, there might not be any benefit for you.
To look at the grouping issue, using the beta, I created a group of five switches.  When I view at the Accessory Details of this switch group, I can select Accessories, then edit and add or remove accessories from the group.  There's no "Ungroup accessories" button like there is for other groups in my Home app.  I don't know why that button would appear on some accessories and not others.

Thanks for the feedback. I just got my second Haiku fan so I was able to test the fix for the naming issue in the beta release. It works much better now.
Don't worry about the grouping stuff, that's definitely a HomeKit oversight.
I'll mark this as closed.
Thanks again,
Brad.

Thanks for following up.

Just wanted to ask if it's possible to cache the custom names if you rename from the default? I find that if I restart home bridge my custom names go back to the defaults that you set in beta 0.5.4 beta 4.
Thanks!

I didn't realize (or maybe I didn't remember) that was happening until I reproduced the issue just now.  I'll look into and see if I can figure out what's going on.

I think<EMAIL_ADDRESS>fixes the name persistence problem.

I think<EMAIL_ADDRESS>fixes the name persistence problem.

I've updated to b9, restarted homebridge and tried again but after renaming "Master Bedroom Fan Light" to "Fan Light" in the Home app and restarting homebridge then the name still goes back to Master Bedroom Fan Light.
Should I be seeing something change in the persist folder or the accessories/cachedAccessories file?
Thanks,
Brad.

Hmm.   Back to the drawing board.  🤔

For you consideration -<EMAIL_ADDRESS>

Thanks for the update @oogje, unfortunately it's still the same. The steps I'm taking to reproduce are:

Update to the latest beta
Restart homebridge
Rename one of the items (fan light in this case)
Restart homebridge
Check the name again in Home.app, find that it has reverted to the default.

Thanks.

Does renaming one or more of the switches survive a reboot?

No, I’ve tried them all and the behaviour is the same.
After renaming:
And after rebooting:

Do you want to try removing the cache via Homebridge UI?  This presumably will also remove the fan from your scenes and automations and place it in the default room.

Wondering if this isn't a larger Homebridge/HomeKit problem atm... I have another Homebridge device through another plugin (unifi-smartpower) that just would not keep the new name, even after renaming multiple times.
I removed that device from any automations I had, then renamed it, and now it seems that the name is sticking.

@aveach, are you seeing the issue @BradJMelb has with the bigassfans plugin?


fix angular.js minification

Hi,
Currently the minified js file does not work minified with angular.
https://github.com/paypal/paypal-checkout/issues/371
This is also connected: https://github.com/paypal/paypal-checkout/issues/288
The fix is quite straight forward.
Thanks,
David

Thanks for the fix!

It was a pleasure :-)


Support listing of all topics

Could we expose getter for parsed topics?
private Map<String, Topic> topics;                  // main topic structure

or something in simillar fashion? As we have for subroutines etc.

@KadekM what is your use case?

I want to show all topic names from parsed RiveScript.

Just pure RiveScript java lib - we are using it from Scala.


issue Resolved : [TextInput] Auto correction doesn't call onChangeTex…

We can just call textFieldDidChange from textFieldEndEditing to resolve this bug.

Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. In order for us to review and merge your code, please sign up at https://code.facebook.com/cla - and if you have received this in error or have any questions, please drop us a line at<EMAIL_ADDRESS>Thanks!

By analyzing the blame information on this pull request, we identified @cava23 and @nicklockwood to be potential reviewers.

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Facebook open source project. Thanks!

@RD1991 I tried to find reviewers for this pull request and wanted to ping them to take another look. However, based on the blame information for the files in this pull request I couldn't find any reviewers. This sometimes happens when the files in the pull request are new or don't exist on master anymore. Is this pull request still relevant? If yes could you please rebase? In case you know who has context on this code feel free to mention them in a comment (one person is fine). Thanks for reading and hope you will continue contributing to the project.

@RD1991 updated the pull request - view changes


Use Endpoint routing

Currently, the middleware needs to run in the app pipeline before the terminal Endpoints middleware.
app.UseRouting();

app.UseMiddleware<AsyncApiMiddleware>();
app.UseEndpoints(endpoints =>
{
    endpoints.MapControllers();
});

It would be nice to register this as an endpoint:
app.UseRouting();

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllers();
    endpoints.MapAsyncApiDocuments();
});

I'd like to take a stab at this


Update from section to include from: component:

updates the docs as #133 adds a new field in the from section

thanks! 🙌🏻


Enable passing host into Aerosol::Connection#with_connection

@bfulton

Todd, the :host attribute is considered harmful, right? Let's just get rid of it rather than support it.

@bfulton We do use it when setting up a migration connection object.

Makes sense. +1


awake and done sounds not working

everything works perfectly, but the only missing thing for me is the playback of "awake.wav" and "done.wav"... so there`s no feedback for the User to know, wether the wakeword was recognized or not (only in HA it´s showing assist active).
Am i missing something here?
thx

check that you have set the correct path to the files.
you can easily test via executing the scripts manually while playing music.


chore(deps): bump https://github.com/zeebe-io/zeebe-cluster-helm from 0.0.19 to 0.0.20

Update zeebe-io/zeebe-cluster-helm from 0.0.19 to 0.0.20
Command run was jx step create pr chart --name zeebe-cluster --version 0.0.20 --repo https://github.com/zeebe-io/zeebe-full-helm.git

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: salaboy
If they are not already assigned, you can assign the PR to them by writing /assign @salaboy in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Prepare for iOS 14+

I have no iOS experience.
to prepare admob-inline-ads-in-flutter/complete_kotlin_swift/ for iOS 14+
Do we need extra settings?

For the SKAdNetwork, you can follow the developer documentation as you have access to the Info.plist file.
Additionally, if you want to display the App Tracking Transparency authorization request, you may want to use the app_tracking_transparency plugin.


log message correction

Remove the schema and cube from the log, replace schema with database and cube with table.

merged #592


fix nav logo href to konghq.com

Summary
direct navbar logo to konghq.com
ADDITIONAL_DETAILS_GO_HERE
If a user clicks on the Kong logo on docs.konghq.com they should be directed to konghq.com
update nav.html file
Replace href for navbar brand with https://konghq.com

PR: https://github.com/Kong/docs.konghq.com/pull/809

PR Merged


Fix the headings

Whoops!
There were 1 warnings that will prevent this PR from being merged. Please take a look, and either fix, or provide a justification for why they can't be fixed.
WARNINGS
src/content/en/updates/2017/10/chrome-63-deprecations.md - No wf_blink_components field found in metadata. Add if appropriate.


Ignore additional dependencies in Dependabot config

sigs.k8s.io/* modules
github.com/containernetworking/* modules

These are things we want to update manually.
Signed-off-by: Antonin Bas<EMAIL_ADDRESS>

Codecov Report

Merging #3533 (b7fd2f6) into main (245ac54) will decrease coverage by 20.79%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main    #3533       +/-   ##
===========================================
- Coverage   64.18%   43.38%   -20.80%
===========================================
  Files         278      210       -68
  Lines       27825    25223     -2602
===========================================
- Hits        17859    10944     -6915
- Misses       8046    13186     +5140
+ Partials     1920     1093      -827

Flag
Coverage Δ

kind-e2e-tests
?

unit-tests
43.38% <ø> (+0.01%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/ovs/openflow/default.go
0.00% <0.00%> (-100.00%)
:arrow_down:

pkg/util/runtime/runtime.go
0.00% <0.00%> (-100.00%)
:arrow_down:

pkg/agent/openflow/groups.go
0.00% <0.00%> (-100.00%)
:arrow_down:

pkg/agent/nodeportlocal/k8s/annotations.go
0.00% <0.00%> (-100.00%)
:arrow_down:

pkg/ovs/openflow/ofctrl_pipeline.go
0.00% <0.00%> (-93.34%)
:arrow_down:

pkg/ovs/openflow/logs.go
9.52% <0.00%> (-90.48%)
:arrow_down:

pkg/apis/controlplane/register.go
0.00% <0.00%> (-90.48%)
:arrow_down:

pkg/agent/controller/networkpolicy/reject.go
0.00% <0.00%> (-87.91%)
:arrow_down:

pkg/agent/openflow/egress.go
0.00% <0.00%> (-84.22%)
:arrow_down:

pkg/flowaggregator/certificate.go
0.00% <0.00%> (-77.48%)
:arrow_down:

... and 192 more

Here is a history bump PR https://github.com/antrea-io/antrea/pull/3503.

@luolanzone on the contrary, I think it's good for has-changes to be updated by Dependabot (although I don't expect there will be another major release of has-changes any time soon).

/skip-all


fix for deferred rendering example.

previous example didn't correctly render with depth outside of the deferred pass. the DrawSphereWires didn't work.

@JettMonstersGoBoom thanks for the review, I'm merging it to fix the example but I try to avoid exposing OpenGL-specific values from rlgl directly, those functions require some more work in the future...


fix(PeriphDrivers): Ensure single execution of DMA-based SPI transaction callback for all parts

Description
This pull request contains three commits to ensure that the req->completeCB callback of MXC_SPI_MasterTransactionDMA is only executed once. Previously, the MXC_SPI_MasterTransactionDMA function could trigger the req->completeCB callback multiple times, which is different from users' expectations (see Background & Problem).
Background
The MXC_SPI_MasterTransactionDMA function initiates DMA requests up to two times. To execute req->completeCB only for the last DMA callback, there is an internal DMA callback counting mechanism.
Callbacks

req->completeCB: A user-provided callback that should be executed once after MXC_SPI_MasterTransactionDMA completes.

MXC_SPI_RevA1_DMACallback: A DMA request callback used internally. The MXC_SPI_MasterTransactionDMA function initiates up to two DMA requests, and each call triggers the MXC_SPI_RevA1_DMACallback function.

How MXC_SPI_MasterTransactionDMA executes the completeCB callback once?

Save a flag states[i].txrx_req which indicates whether both of Tx/Rx DMA requests are needed. (ref)
Save two flags tx_is_complete and rx_is_complete which indicate whether Tx/Rx DMA requests are needed. (ref)
Initiate Tx/Rx DMA when tx/rxData != NULL && !tx/rx_is_complete. (tx, rx)
If tx/rx_is_complete == true, run MXC_SPI_RevA1_DMACallback manually. (ref)
Inside MXC_SPI_RevA1_DMACallback, when states[i].txrx_req == true, execute req->completeCB for second MXC_SPI_RevA1_DMACallback call. If states[i].txrx_req == false, always call req->completeCB. (ref)

Problem

The condition of the states[i].txrx_req flag and the actual DMA request condition differ.

Example

Input req: txData == NULL && txLen == 0 && txCnt == 0 && rxData != NULL && rxLen > 0 && rxCnt = 0
Internal variables: txrx_req = false, tx_is_complete = true, rx_is_complete = false
Rx DMA will be initiated
Due to tx_is_complete == true, this code will execute MXC_SPI_RevA1_DMACallback.
Rx DMA also triggers MXC_SPI_RevA1_DMACallback after the DMA request finishes.

2. Inside MXC_SPI_RevA1_DMACallback, the shared variablestates[i].req_done is used multiple times (usage 1, usage 2). This can trigger req->completeCB multiple times when execution of two MXC_SPI_RevA1_DMACallback calls overlaps.
Commit Details

Commit 1: Solving Problem 1

Always check req->rx/txData != NULL && req->rx/txLen for both setting txrx_req and initiating DMA.

* Commit 2: Partially solving Problem 2 * Use the shared variable states[i].req_done once in MXC_SPI_RevA1_DMACallback by utilizing a non-shared local variable req_done. * Potential issue: When an inturrept occurs during req_done = states[i].req_done++ execution, req->completeCB may not be executed.
* Commit 3: Solving potential issue of commit 2 * Use an atomic operation to fetch and increment the shared variable states[i].req_done, ensuring that the operation is safe from interrupt and that the req->completeCB callback is executed correctly.
Tests

Tested the changes on a MAX78000 device.

Checklist Before Requesting Review

[x] PR Title follows correct guidelines.
[x] Description of changes and all other relevant information.
[x] Provide info on any relevant functional testing/validation.  For API changes or significant features, this is not optional.

@Jake-Carter @sihyung-maxim Thank you for the feedback!
If the sequential execution of the DMA handler is guaranteed, then Problem 2 might not be an issue.
I have reverted the two commits that addressed Problem 2.
I thought Problem 2 was the cause because the async DMA call and wait were still unstable even after handling Problem 1.
There are instances where the wait execution stops depending on the presence of printf or other related functions.
I will look for other solutions.
I apologize for the confusion.
Thank you for your understanding.

There are instances where the wait execution stops depending on the presence of printf or other related functions.
I will look for other solutions.

Do you have an example that can consistently reproduce it?

@Jake-Carter
I fixed that error a few days ago.
The problem was that the memory of req was freed before the DMA's callback.
After applying the last 3 PRs (#1059, #1070, #1072), DMA-based SPI communications work well in all cases.
Thank you for the reviews.

@JeonChangmin ah yep, that is a somewhat common issue if the request struct goes out of scope.  Thanks for your contributions!


Adding --version to Program Args

Summary
Adding --version to CLI args to easily get the version of the app.

Because this isn't a CLI app I think those suggestions are overkill. I can switch the check so it disregards the leading --


composer install error

$ composer require cboden/ratchet
Using version ^0.4.1 for cboden/ratchet
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Conclusion: remove react/promise v2.5.1
    - Conclusion: don't install react/promise v2.5.1
    - react/socket v0.8.12 requires react/promise ^2.6.0 || ^1.2.1 -> satisfiable by react/promise[v1.2.1, v2.6.0, v2.7.0, v2.7.1].
    - react/socket v1.0.0 requires react/promise ^2.6.0 || ^1.2.1 -> satisfiable by react/promise[v1.2.1, v2.6.0, v2.7.0, v2.7.1].
    - react/socket v1.1.0 requires react/promise ^2.6.0 || ^1.2.1 -> satisfiable by react/promise[v1.2.1, v2.6.0, v2.7.0, v2.7.1].
    - react/socket v1.2.0 requires react/promise ^2.6.0 || ^1.2.1 -> satisfiable by react/promise[v1.2.1, v2.6.0, v2.7.0, v2.7.1].
    - Can only install one of: react/promise[v1.2.1, v2.5.1].
    - Can only install one of: react/promise[v2.6.0, v2.5.1].
    - Can only install one of: react/promise[v2.7.0, v2.5.1].
    - Can only install one of: react/promise[v2.7.1, v2.5.1].
    - Installation request for react/promise (locked at v2.5.1) -> satisfiable by react/promise[v2.5.1].
    - Installation request for cboden/ratchet ^0.4.1 -> satisfiable by cboden/ratchet[v0.4.1].
    - Conclusion: don't install react/socket v0.4.6|install react/socket v0.8.12|install react/socket v1.0.0|install react/socket v1.1.0|install react/socket v1.2.0
    - Conclusion: remove react/socket v0.4.6|install react/socket v0.8.12|install react/socket v1.0.0|install react/socket v1.1.0|install react/socket v1.2.0
    - cboden/ratchet v0.4.1 requires react/socket ^1.0 || ^0.8 || ^0.7 || ^0.6 || ^0.5 -> satisfiable by react/socket[v0.5.0, v0.5.1, v0.6.0, v0.7.0, v0.7.1, v0.7.2, v0.8.0, v0.8.1, v0.8.10, v0.8.11, v0.8.12, v0.8.2, v0.8.3, v0.8.4, v0.8.5, v0.8.6, v0.8.7, v0.8.8, v0.8.9, v1.0.0, v1.1.0, v1.2.0].
    - Can only install one of: react/socket[v0.5.0, v0.4.6].
    - Can only install one of: react/socket[v0.5.1, v0.4.6].
    - Can only install one of: react/socket[v0.6.0, v0.4.6].
    - Can only install one of: react/socket[v0.7.0, v0.4.6].
    - Can only install one of: react/socket[v0.7.1, v0.4.6].
    - Can only install one of: react/socket[v0.7.2, v0.4.6].
    - Can only install one of: react/socket[v0.8.0, v0.4.6].
    - Can only install one of: react/socket[v0.8.1, v0.4.6].
    - Can only install one of: react/socket[v0.8.10, v0.4.6].
    - Can only install one of: react/socket[v0.8.11, v0.4.6].
    - Can only install one of: react/socket[v0.8.2, v0.4.6].
    - Can only install one of: react/socket[v0.8.3, v0.4.6].
    - Can only install one of: react/socket[v0.8.4, v0.4.6].
    - Can only install one of: react/socket[v0.8.5, v0.4.6].
    - Can only install one of: react/socket[v0.8.6, v0.4.6].
    - Can only install one of: react/socket[v0.8.7, v0.4.6].
    - Can only install one of: react/socket[v0.8.8, v0.4.6].
    - Can only install one of: react/socket[v0.8.9, v0.4.6].
    - Installation request for react/socket (locked at v0.4.6) -> satisfiable by react/socket[v0.4.6].

Installation failed, reverting ./composer.json to its original content.

Right so we (@ReactPHP) released a whole bunch of new versions for out packages since react/socket 0.4.6. There are two possibilities here a) a composer update resolves this and you get a whole slew of new version. b) something in your dependency tree is still targeting react/socket 0.4.6, in that case a composer show -t will show you exactly which package(s) is/are blocking the update.


feature(packaging): debian and rpm packaging

Adding Debian and RPM Packaging

[x] RPM
[x] Debian
[ ] Github Action on release to publish .deb and .rpm

What's the value of packaging it, if a container works great?

What's the value of packaging it, if a container works great?

We need it without a container, container works great, but we want to test it on bare metal.
It's bad for performance testing, just to avoid the overhead that we have with containers,
and also customers want to run it without docker. Cassandra stress was supplied with .deb and .rpm before, in scylla-tools-java so we are bringing the support back

What's the value of packaging it, if a container works great?

@mykaul We need it without a container, container works great, but we want to test it on bare metal. It's bad for performance testing, just to avoid the overhead that we have with containers, and also customers want to run it without docker. Cassandra stress was supplied with .deb and .rpm before, in scylla-tools-java so we are bringing the support back

This isn't true. Containers work at 99-99.9% of the performance of bare metal.
I haven't heard of a customer asking to run non-containerized cassandra-stress. They may want to, they can use older versions that are still available. We have more important tasks (IMHO) to focus on that we can bring value to customers with.
(Random examples - move to newer Java - which will be faster most likely; move away from cassandra-stress to newer tools, using more modern drivers and architecture; extend c-s with more feature to provide more realistic workload simulations).

What's the value of packaging it, if a container works great?

@mykaul We need it without a container, container works great, but we want to test it on bare metal. It's bad for performance testing, just to avoid the overhead that we have with containers, and also customers want to run it without docker. Cassandra stress was supplied with .deb and .rpm before, in scylla-tools-java so we are bringing the support back

This isn't true. Containers work at 99-99.9% of the performance of bare metal.

It's close, if you use the correct options
Our throughput test so show a difference, and we still keeps the option of running without docker cause of it.

I haven't heard of a customer asking to run non-containerized cassandra-stress. They may want to, they can use older versions that are still available. We have more important tasks (IMHO) to focus on that we can bring value to customers with.

You didn't heard, cause there isn't any release without it yet.

(Random examples - move to newer Java - which will be faster most likely; move away from cassandra-stress to newer tools, using more modern drivers and architecture; extend c-s with more feature to provide more realistic workload simulations).

Not sure how those examples are counter to have other delivery option but docker ?
I can give one actual example, I know of a user (inside Scylla) that was given the docker image, he extracted the jar files from it, and replace them with installed c-s version he had.
I think it's a bit too soon to assume what users need in that regards.
We as users in SCT of c-s stress, need a debian package as well.

Not sure how those examples are counter to have other delivery option but docker ?

Matter of priorities. If we do this, we don't do them.

Not sure how those examples are counter to have other delivery option but docker ?

Matter of priorities. If we do this, we don't do them.

there is not list of those other things you mentioned, hence they are not taken into any priority making


Feature Request: adding class_weights to tfLite Model Maker

Description of issue (what needs changing):
It would be great if somebody could add class_weights to the model maker .create() arguments because it's pretty common to work with imbalanced datasets in real life. I'm trying to retrain a model with model maker for image classification and have about 15 labels with very different balances in classes. I'm trying to change the code myself and hoping to do a pull request but I can't my code to work.
Clear description
For example, why should someone use this method? How is it useful?
Many datasets are imbalanced and having class_weights in the .create() method will help a lot to tackle that issue.
Correct links
https://github.com/tensorflow/examples/tree/master/tensorflow_examples/lite/model_maker/core/task
Parameters defined
Description which could be added.
class_weight: : Optional dictionary mapping class indices (integers) to a
weight (float) value, used for weighting the loss function
(during training only). This can be useful to tell the model to
"pay more attention" to samples from an under-represented class.
Are you planning to also submit a pull request to fix the issue? See the docs
I'm trying to fix it myself and would like to do a pull request but my build never works after I changed the code. I've been trying to fix it for a while and finally just figured I should see if somebody else knows how to do it.

@lintian06 could you review this feature request?

I made some code which I think adds the feature. I'm not sure if it works though because I can't build from source when I follow the instructions from the model_maker readme. I make a fork and added the changes but I don't know how to make a pull request to TensorFlow. I tried, but it doesn't seem to show up on the TensorFlow PRs.
This is the fork where I made the changes https://github.com/wee-analyze/examples/pull/1

I figured out how to make a PR in the TensorFlow repo https://github.com/tensorflow/tensorflow/issues/48703#issuecomment-825221404

I changed some code which I think adds the feature. I'm not sure if it works though because I can't build from source when I follow the instructions from the model_maker readme (not sure why that is).  This is the PR I made https://github.com/tensorflow/examples/pull/307

@lintian06 I changed some code which I think adds the feature. If you're interested, maybe you could check my code? I'm not sure if it works because I can't build from source when I follow the instructions from the model_maker readme (not sure why that is).  This is the PR I made https://github.com/tensorflow/examples/pull/307

Hi,
Thank you for opening this issue. Since this issue has been open for a long time, the code/debug information for this issue may not be relevant with the current state of the code base.
The Tensorflow team is constantly improving the framework by fixing bugs and adding new features. We suggest you try the latest TensorFlow version with the latest compatible hardware configuration which could potentially resolve the issue. If you are still facing the issue, please create a new GitHub issue with your latest findings, with all the debugging information which could help us investigate.
Please follow the release notes to stay up to date with the latest developments which are happening in the Tensorflow space.


Unexpected Anonymous user behavior

The behavior for anonymous users (user = None) seems inconsistent/incorrect to me. I am using the package flask-jwt-extended for handling user authentication, so when a user is not logged in, None is returned for the current user. This is in contrast to flask-login where you get an Anonymous User object. I recently switched between the two, and saw no problem when using flask-login.
In an app I am creating, users can be logged in or not logged in (public user). Some entries in our DB are public and should be viewable by everyone - all logged in users, and users who are not logged in (public). To me, this is the equivalent of the permission for other being set to read along with AUTHORIZE_ALLOW_ANONYMOUS_ACTIONS being set to True.
I would expect that users who are not logged in experience the same permissions for an item that users who are not the owner or in the group would get (ie other permissions). However, if I allow anonymous actions, non-logged in users are able to see all entries, even those where other is set to no permissions (other=['']), which they should not be able to read. I haven't tested, but from looking at the code, AUTHORIZE_ALLOW_ANONYMOUS_ACTIONS will allow all actions for users who are not logged in to do any action (delete, create, update, etc).
Relevant code portion from flask_authorize/plugin.py, lines 336-338
# don't allow anything for anonymous users
        if user is None:
            return current_app.config['AUTHORIZE_ALLOW_ANONYMOUS_ACTIONS']

In the permission check, if 'authorize_allow_anonymous_actions' is True, using authorize.action  will always return True (which seems like unwanted behavior to me). This is also inconsistent with what will come out of the DB if you have user = None and do a sqlalchemy query to your db, for example for entries which you are allowed to read. As in, I can do authorize.read(article) and get True on an sqlalchemy article object, but do Article.query.filter(Article.authorized('read')) and not get the article.
I patched this on my own package to get the desired behavior (https://github.com/janash/seamm_dashboard/blob/jwt-authorize/app/authorize_patch.py). I've tried applying this in the package as well, but it causes many tests to fail. Wondering if you see this behavior as intended.
If this is unclear, let me know if you need me to come up with a minimal example.
Thanks!

Hi @janash! Thanks for the ticket and thorough explanation.
You make a good point - the logic for handling anonymous users does seem inconsistent with what you'd actually want for content restrictions (defaulting to other permissions instead of wide-open permissions). I think your patch resolves the problem appropriately, but I'm going to take some time to go through the failing test cases to ensure they're all logically consistent and expected.

After I do that, I'll create a new release and close this ticket with the new version number. Thanks again!

Thanks!

Sorry this took so long - it's been a busy couple of weeks and I haven't had time to get around to it until now. I just incorporated your fix and updated the tests accordingly.

I also just released a 0.2.2 version update to PyPi. Thanks for the help!

👍🏻  👍🏻  👍🏻


I do not see anything on camera.

I don't see anything on camera screen.It just display latitude, longitude and altitude on screen.I don't see any point on camera screen.Please let me know your view.

Same issue I am having, did you find any solution? please help.

Check the altitude of your ARPoints, if they are too close and the altitude is set to 0, you may find the points are actually rendered below you.
Set the altitude of your ARPoints to the same altitude as the camera (you can see the altitude on the screen)


Consider chrome's version JSON

http://omahaproxy.appspot.com/all.json is available if you want a data feed that's maintained for what is the stable version of Chrome etc.
more human readable version here https://googledrive.com/host/0B8R1QvA3x5IbWll3M0hIYXVLZlk/
dunno if this is useful to you.. but just FYI

Took a while but the Chrome build numbers are now automatically updated from the Omahaproxy with each release.
BTW, is there a way to get the full release history, instead of just the recent release history:
http://omahaproxy.appspot.com/history


Fix Date parsing

The parsing of dates is currently "mm-dd-yyyy" however  I prefer "mm/dd/yy" as I'm already using it.

Also single digit numbers fail the parser. This needs fixing the prefered options are in the form m<m>/d<d>/yy<yy>


Add an Elixir client to the 'Third-Party Clients' section

Added an Elixir client project to the 'Third-Party Clients' section:
axonzeta/mistral_elixir

Hello! As your PR was created before a significant overhaul of our documentation structure, I've taken the liberty of adding your link directly to the most recent version. This means I'll be closing this PR, but please be confident that your client is now (or will be very shortly) included in the list at https://docs.mistral.ai/getting-started/clients/#third-party-clients.
Thanks a ton for your contribution 🙂


Remove references to SHA-1 fingerprint from MTV user guide

MTV 2.6
Resolves https://issues.redhat.com/browse/MTV-943 by removing all references to a SHA-1 fingerprint from the MTV 2.6 user guide.
Preview: https://file.emea.redhat.com/rhoch/noSHA1/html-single/ [search for "SHA1" or "fingerprint"]

@yaacov @ahadas Please review this PR.

lgtm ( i assume the adding CA  is in a different PR )

@anarnold97 @HagayVider1 this should be documented as a technical change, maybe not specifically for vSphere but generally as:
MTV receives CA certificates also for OpenShift and vSphere providers. This replaces the specification of a SHA-1 fingerprint of vCenter for vSphere providers


gh-1808 - excluded org.spire-math dependency from graphx

Codecov Report

:exclamation: No coverage uploaded for pull request base (develop@9bb1db6). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             develop    #1809   +/-   ##
==========================================
  Coverage           ?   66.28%
  Complexity         ?     2106
==========================================
  Files              ?      838
  Lines              ?    27351
  Branches           ?     3485
==========================================
  Hits               ?    18130
  Misses             ?     7807
  Partials           ?     1414

Continue to review full report at Codecov.

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


Optimize Search Field by Implementing Client-Side Filtering and Debouncing

Enter your suggestions in details:

What I expected to happen:
I expected that network calls would be triggered only after the user finishes typing or after a brief delay, instead of on every keystroke. This would reduce unnecessary API requests and improve performance.

reason :
Currently, every keystroke triggers a network request, which can result in performance issues and an excessive number of calls to the server. This could cause slower response times, especially with large datasets or slower network connections.
(Optional: Attach a video or image of the current behavior if available)

What I plan to do (Optional but better):
I plan to implement debouncing using the use-bounce library or a client-side filtering solution rather than debouncing the network requests, . This will delay the network request until the user has stopped typing for a set duration, thus reducing the frequency of requests.

@rithviknishad can you assign this  to me

we are already client side filtering btw.
we do not have cloudflare workers enabled.
just that it's simply dispatching requests to cloudflare pages and receiving same response regardless of the query params in the request.

you could prevent fetching the same static content somehow

content as in the response from cloudflare

leaderboard is fully static site, it can't serve contents based on query params

leaderboard is fully static site, it can't serve contents based on query params

You mentioned that static content is being served repeatedly, but the content is only loaded once when I first reload the page. I don't understand how it is being served again and again.

I menioned that every keystroke triggers a network request, but it is a static site and for serch operation no network calls are fired ,I understand this part .But your suggestion to prevent fetching the same static content during every keystroke for every key value—I cannot understand how different keystrokes would fetch the same content.

so you are saying, right now different keystrokes are yielding different contents in each of the responses?

so you are saying, right now different keystrokes are yielding different contents in each of the responses?

content are same but on each key stroke we are getting different number of contents

are you sure?

are you sure?

I think I had some misunderstanding regarding the word 'fetching.' Do you mean fetching from already available static content?

are you sure?

Now I understand the issue. In each search, the same size of data is being fetched, but I only need the data based on the search input, so that unnecessary data is not retrieved each time. I failed to understand it because in the UI it was showing different data.

We don't even need to fetch on keystroke / filter change, since the static site generated already ships all the data for the specified date range, and it's client side filtered.

We don't even need to fetch on keystroke / filter change in the first place, since the static site generated already ships all the data for the specified date range, and it's client side filtered.

one thing I could not understand
As per your statement, there is no need to fetch data from the server every time a user types or changes a filter. Since the static site is pre-generated and includes all the necessary data for a specified date range, filtering can be done directly on the client side without making additional server requests. Why are these network requests being made during each keystroke? Are they unnecessary, and should I remove them?

like already said: https://github.com/ohcnetwork/leaderboard/issues/573#issuecomment-2559886933

like already said: #573 (comment)

Finally, I understand this: we are performing client-side filtering during the search, but still fetching all the content from the server. What if I remove the logic that fetches data from the server during the search?


Problem with latexmath within table

When rendering the following table I get the below error. When I remove the lines with the latexmath the remaining document is rendered correctly.
[cols=",,,,",options="header",]
|============================================================================================
|Entity |Field |Data type |Article CRR |Notes
|Split exposure |Asset-ID |Text | |
| |CA-ID |Text | |
| |Guarantee-ID |Text | |
| |Portion number |Nat | |
| |Exposure-ID |Text | |
| |Maturity haircut latexmath:[H_M] |Double | |
| |Currency haircut latexmath:[H_{FX}] |Double |224, 227 |
| |Liquidation period |Double |225 (2) b |
| |Collateral volatility adjustment latexmath:[H_C] |Double |224, 227 |
| |Volatility adjustment latexmath:[H_E] |Double |223 (6) – (7), 224 table 1-3 |
| |Volatility adjusted exposure latexmath:[E_{VA}] |Double |223 (3) |
| |Volatility adjusted collateral value latexmath:[C_{VA}] |Double |223 (2), 193 (5) – (6), 231 |Separately calculated for parts of an exposure accordint to Art. 193 (5) and (6) for the CSA and Art. 231 for the IRBA.
| |Volatility and maturity adjusted collateral value (aka “the collateral value”) latexmath:[C_{VAM}] |Double |223 (2), 193 (5) – (6), 231, 239 |Separately calculated for parts of an exposure accordint to Art. 193 (5) and (6) for the CSA and Art. 231 for the IRBA.
| |Fully adjusted exposure value E* |Double |223 (5) |
| |Required minimum collateralization level of the exposure C* |Double |230 table 5 |
| |Upper bound to collateralization C** |Double |230 table 5 |
| |Effective LGD* |Double |228 (2) |
|============================================================================================

tkx@ubuntu:/media/psf/Home/devel/hcob-collateral$ asciidoctor -r asciidoctor-diagram -r asciidoctor-mathematical -o docs/README.html README.adoc && firefox docs/README.html
asciidoctor: FAILED: /media/psf/Home/devel/hcob-collateral/README.adoc: Failed to load AsciiDoc document - undefined method `lines=' for #<Asciidoctor::Table::Cell:0x00005590a2560760>
Did you mean?  lines
               lineno
  Use --trace for backtrace

The trace gives the following:
tkx@ubuntu:/media/psf/Home/devel/hcob-collateral$ asciidoctor --trace -r asciidoctor-diagram -r asciidoctor-mathematical -o docs/README.html README.adoc && firefox docs/README.html
Traceback (most recent call last):
        18: from /usr/local/bin/asciidoctor:23:in `<main>'
        17: from /usr/local/bin/asciidoctor:23:in `load'
        16: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/bin/asciidoctor:15:in `<top (required)>'
        15: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/cli/invoker.rb:111:in `invoke!'
        14: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/cli/invoker.rb:111:in `each'
        13: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/cli/invoker.rb:128:in `block in invoke!'
        12: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/convert.rb:183:in `convert_file'
        11: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/convert.rb:183:in `open'
        10: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/convert.rb:183:in `block in convert_file'
         9: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/convert.rb:78:in `convert'
         8: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/load.rb:83:in `load'
         7: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/document.rb:555:in `parse'
         6: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/document.rb:555:in `each'
         5: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/document.rb:556:in `block in parse'
         4: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/document.rb:556:in `[]'
         3: from /var/lib/gems/2.7.0/gems/asciidoctor-mathematical-0.3.4/lib/asciidoctor-mathematical/extension.rb:42:in `process'
         2: from /var/lib/gems/2.7.0/gems/asciidoctor-mathematical-0.3.4/lib/asciidoctor-mathematical/extension.rb:42:in `each'
         1: from /var/lib/gems/2.7.0/gems/asciidoctor-mathematical-0.3.4/lib/asciidoctor-mathematical/extension.rb:43:in `block in process'
/var/lib/gems/2.7.0/gems/asciidoctor-mathematical-0.3.4/lib/asciidoctor-mathematical/extension.rb:115:in `handle_prose_block': undefined method `lines=' for #<Asciidoctor::Table::Cell:0x0000556dfa8dc800> (NoMethodError)
Did you mean?  lines
               lineno
        18: from /usr/local/bin/asciidoctor:23:in `<main>'
        17: from /usr/local/bin/asciidoctor:23:in `load'
        16: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/bin/asciidoctor:15:in `<top (required)>'
        15: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/cli/invoker.rb:111:in `invoke!'
        14: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/cli/invoker.rb:111:in `each'
        13: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/cli/invoker.rb:128:in `block in invoke!'
        12: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/convert.rb:183:in `convert_file'
        11: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/convert.rb:183:in `open'
        10: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/convert.rb:183:in `block in convert_file'
         9: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/convert.rb:78:in `convert'
         8: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/load.rb:83:in `load'
         7: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/document.rb:555:in `parse'
         6: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/document.rb:555:in `each'
         5: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/document.rb:556:in `block in parse'
         4: from /var/lib/gems/2.7.0/gems/asciidoctor-2.0.10/lib/asciidoctor/document.rb:556:in `[]'
         3: from /var/lib/gems/2.7.0/gems/asciidoctor-mathematical-0.3.4/lib/asciidoctor-mathematical/extension.rb:42:in `process'
         2: from /var/lib/gems/2.7.0/gems/asciidoctor-mathematical-0.3.4/lib/asciidoctor-mathematical/extension.rb:42:in `each'
         1: from /var/lib/gems/2.7.0/gems/asciidoctor-mathematical-0.3.4/lib/asciidoctor-mathematical/extension.rb:43:in `block in process'
/var/lib/gems/2.7.0/gems/asciidoctor-mathematical-0.3.4/lib/asciidoctor-mathematical/extension.rb:115:in `handle_prose_block': asciidoctor: FAILED: /media/psf/Home/devel/hcob-collateral/README.adoc: Failed to load AsciiDoc document - undefined method `lines=' for #<Asciidoctor::Table::Cell:0x0000556dfa8dc800> (NoMethodError)
Did you mean?  lines
               lineno

I use asciidoctor version 2.0.10:
tkx@ubuntu:/media/psf/Home/devel/hcob-collateral$ asciidoctor --version
Asciidoctor 2.0.10 [https://asciidoctor.org]
Runtime Environment (ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux-gnu]) (lc:UTF-8 fs:UTF-8 in:UTF-8 ex:UTF-8)

I use Ubuntu 20.04.

I have exactly the same issue. Strangely it works on my old machine Ubuntu 18.04, with:
Asciidoctor 2.0.10 [https://asciidoctor.org]
Runtime Environment (ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]) (lc:UTF-8 fs:UTF-8 in:UTF-8 ex:UTF-8)

I think we need a refactor to this extension to resolve all these issues. Who will volunteer time for it?

It appears this extension was relying on an internal API that was removed. I'll have look.

This is a duplicate of #61. It also happens for asciimath in a table cell.


Created files/directories in sqlmesh UI not showing unless refreshing

When creating a file or directory through sqlmesh ui, the files/directories are created correctly but aren't displayed in the file explorer unless the page is refreshed.

@mykalmax is this intentional?


Update .gitignore

What the program do ?

In what programming language it is written?

This pull request do not contains files in specific folders. Please fix it and reopen


latex drawer: justifying doesn't work for custom gates

What is the expected enhancement?
Boxes get overlapped in the latex drawer. In the example below I have 3 boxes: a 1-qubit unitary, a 2-qubit unitary, and a 2-qubit custom opaque gate.
from qiskit.circuit import QuantumRegister, QuantumCircuit
from qiskit.circuit import Gate
from qiskit.quantum_info.random import random_unitary
qr = QuantumRegister(3)
qc = QuantumCircuit(qr)
U1 = random_unitary(2)
U2 = random_unitary(4)
opaque_gate = Gate(name='opaque_gate', num_qubits=2, params=[])
qc.append(U1, [qr[1]])
qc.append(U2, [qr[0], qr[1]])
qc.append(opaque_gate, [qr[1], qr[2]])
qc.draw(output='latex', justify='left')

Maybe an issue with justification? Though I was not able to fix this by tweaking the justify param.
PS. The underscore in the opaque_gate name should also render better.

Hmm, I'm thinking the layers for justification isn't interpreting things the same way the latex is drawing them so we end up drawing overlapping boxes. @maddy-tod you're more familiar with the layers and justification does this seem like what's going on? Either way I'll check the raw latex output, because I didn't actually think that would render. (I expected xypic to return an error, but it might be an edge case in the multigate).
As for the text, the easiest way would be to just use: https://pypi.org/project/pylatexenc/ as pass all the gate display text through that.

#2246 will fix the name issue, but I still have to look into the overlapping gate drawings


AOT support for a simple console app is failing to build

It seems that the publish folders are missing a 'native' path setup that make the build fails when attempting to publish a project marked with  property.
Steps to reproduce are:
Create simple console .NET app in C# with just one line (example):
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

Project content would be:
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net7.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <PublishAot>true</PublishAot>
  </PropertyGroup>

</Project>

Drop a 'Directory.Build.props' file on the root of the solution with the following content:
<Project>

  <PropertyGroup>
    <EnlistmentRoot>$(MSBuildThisFileDirectory)</EnlistmentRoot>
    <CentralBuildOutputPath>$(EnlistmentRoot)</CentralBuildOutputPath>
    <CentralBuildOutputFolderPrefix>___</CentralBuildOutputFolderPrefix>
  </PropertyGroup>

  <Sdk Name="Treasure.Build.CentralBuildOutput"  Version="2.0.0" />

</Project>

Run the following command:
dotnet publish SimpleAOT\SimpleAOT.csproj

The result is:
MSBuild version 17.6.0-preview-23179-01+dd5d9f746 for .NET
  Determining projects to restore...
  Restored C:\Users\rodrigov\source\repos\SimpleAOT\SimpleAOT\SimpleAOT.csproj (in 167 ms).
C:\Program Files\dotnet\sdk\7.0.300-preview.23179.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInfer
ence.targets(287,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-po
licy [C:\Users\rodrigov\source\repos\SimpleAOT\SimpleAOT\SimpleAOT.csproj]
  SimpleAOT -> C:\Users\rodrigov\source\repos\SimpleAOT\___output\Debug\AnyCPU\SimpleAOT\net7.0\win-x64\SimpleAOT.dll
  Generating native code
     Creating library C:\Users\rodrigov\source\repos\SimpleAOT\___publish\Debug\AnyCPU\SimpleAOT\native\SimpleAOT.lib a
  nd object C:\Users\rodrigov\source\repos\SimpleAOT\___publish\Debug\AnyCPU\SimpleAOT\native\SimpleAOT.exp
C:\Program Files\dotnet\sdk\7.0.300-preview.23179.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Publish.targets(267,5)
: error MSB3030: Could not copy the file "C:\Users\rodrigov\source\repos\SimpleAOT\___publish/Debug/AnyCPU/SimpleAOT/ne
t7.0/win-x64/native/SimpleAOT.exe" because it was not found. [C:\Users\rodrigov\source\repos\SimpleAOT\SimpleAOT\Simple
AOT.csproj]

Ok. I was able to reproduce this issue on my own as well. In my repro, the native output is written to:
__publish/Debug/AnyCPU/src/MyApp/native

But, it's looking for the native content at:
__publish/Debug/AnyCPU/src/MyApp/net7.0/win-x64/native

I'll have to figure out where the discrepancy is coming from.

Looks like I regressed this in #59.

@rodrigovaras You should be able to use version 1.0.9 as a workaround while I work on this.

@rodrigovaras 3.0.0 fixes the problem.


Rename memory instructions.

The wasm instructions grow_memory and current_memory were renamed to
memory.grow and memory.size, respectively:
https://github.com/WebAssembly/spec/pull/720
The patch here renames wasmparser.rs's GrowMemory and CurrentMemory
to MemoryGrow and MemorySize, to better align with the spec.

Thank you for the patch


Use pre-hooks to streamline production

Use pre-hooks to streamline configuration and reduce number of input-prompts.

[x] Ask only name of PI and conversion name
[ ] Generate timestamp for conversion name.

The timestamp part for conversion names could maybe be done with this:
https://cookiecutter.readthedocs.io/en/2.1.1/advanced/injecting_context.html


compilation fails under macos

While compiling on Ventura, the compilation has multiple errors for sprintf deprecation
aws-iot-device-client/build/aws-iot-device-sdk-cpp-v2-src/crt/aws-crt-cpp/source/external/cJSON.cpp:584:18: error: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Werror,-Wdeprecated-declarations]
length = sprintf((char*)number_buffer, "null");
Event after replacing with snprintf the compilation fails with mismatch function error

You can suppress this error by removing the -Werror flag manually. However you may run into other compilation errors on MacOS since device client uses linux-specific systemcalls, namely inotify. There is a way of linking the modules that do not utilize such calls, but it is currently a very manual process with very little standardization and no documentation. As such, we cannot say we support macOS yet.


Add a more formal "guides" section for beginners (like Rails Guides)

I feel like the current "share a tutorial" does not achieve the goal of guiding a beginner to write games in Ruby. We need a more formal, curated guides section (like http://guides.rubyonrails.org). Maybe the categorization feature will help with this.

As a member of the site, I want to be able to write a tutorial (guide) that will live on the site so that I can share it with my peers, and help others learn game programming with Ruby.
I also want to be able to tag my tutorial/guide with multiple tags, including skill level, platform, and others, so that visitors to the site can easily navigate to this content.
As a visitor to the homepage, I want to be able to navigate to guides based on skill level, so that I can find tutorials based on my current skill level.

Add ability to navigate to a "Guides" page (add a link to this page in the nav bar).
Add ability to create a new "Category" (GuidesCategory model) on this page
List all of these Categories on the Guides page
Add ability to create a new "Guide" post
Use single table inheritance to create a subclass of Post called Guide. Some work has already been done on this (in #45) to create an ExternalPost class.
All of the behavior should be the same as Post, but it should have a default tag of guide
Add ability to add a guide post to a category within the create guide form.
The guides page can look very similar to http://guides.rubyonrails.org (a list of categories and their guides)

An extra feature that would be nice to have (not required):

Anyone can edit a guide, but when they save it, it goes to a guide_revisions table, which requires a site admin to approve before it can go live.
The guides always reference the latest approved revision.

Am I missing anything? Let me know if you have any more questions about this.

Most of this has been built with #60


fix: tooltip show over dialog

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/49517
PROPOSAL: https://github.com/Expensify/App/issues/49517#issuecomment-2363276256
Tests

In search page, create a saved search
Verify the tooltip is shown
Open a receipt expense report
Open expense preview
Verify that: the tooltip is dismissed.

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

In search page, create a saved search
Verify the tooltip is shown
Open a receipt expense report
Open expense preview
Verify that: the tooltip is dismissed.

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/user-attachments/assets/1d53b935-a0d0-4bd6-98b5-df6138152a27

Android: mWeb Chrome
https://github.com/user-attachments/assets/8075e0a7-554c-430f-acaf-2c51f28e5ac5

iOS: Native
https://github.com/user-attachments/assets/2125e6f9-a6eb-4193-a066-6650071a591c

iOS: mWeb Safari
https://github.com/user-attachments/assets/8a089661-bf90-4dd3-8ee3-550c859c170f

MacOS: Chrome / Safari
https://github.com/user-attachments/assets/1683f36c-664f-4723-b5b2-91b9f5ba1f49

MacOS: Desktop
https://github.com/user-attachments/assets/5bd3015b-365a-4f01-8b12-37af58ef9d8e

@daledah performance tests are failing.

@daledah lint is failing.

The ESLint check failure is unrelated to this PR (it's a withOnyx migration). I think we can skip that and tackle it as a follow up.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

Hmm this PR changed some low level components in the LHN and composer, so it could have affected performance. That being said, I can't find the e2e workflow run for it. Gonna re-run this job.

Latest run had:
App start time (RAM) | 351.209 MB → 353.176 MB (+1.967 MB, +0.6%)

which is what we were at before this PR was merged


Passed dropdown parent shall be wrapped in $()

If passing a non-jQuery object (string), a .css call throws an exception $offsetParent.css is not a function in AttachBody.prototype._positionDropdown.
This pull request includes a

[X] Bug fix
[ ] New feature
[ ] Translation

The following changes were made

Call $() on passed dropdownParent / data-dropdown-parent in AttachBody
It seems generally safe to call $() on already a jQuery objects

If this is related to an existing ticket, include a link to it as well.

ehm...is there anything holding this one that I shall fix? I kind of rely on it and it has a test.

I know it's been a few months and we dropped the ball on this one, but this generally looks good and it's my goal to get it merged in.
But before we do that, is there any chance you can split your test changes out so we have two different tests? One for passing in a jQuery object and the other for passing in the selector.

I made a separate test case and rebased my branch.

Hi, thanks mlt for proposing this change.
I would also find it valuable - using the 'data-dropdown-parent' attribute (eg ="#myID') actually seems to fail otherwise.
Cheers

bump?


Update akka-http, akka-http-testkit to 10.2.3

Updates

com.typesafe.akka:akka-http
com.typesafe.akka:akka-http-testkit

from 10.2.1 to 10.2.3.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.typesafe.akka" } ]

labels: library-update, semver-patch

Superseded by #27.


Skip processing of layer/features not selected by styleSet.

Skip processing of layer/features not selected by styleSet.
Basing on changes from #852, we can use pre-filtered styleSet
lists to check if particular layer/geometryType combination can
be completly ignored before decoding OMV/GeoJson data.

Decoders tests please

Decoders tests please

Decoders tests please

@heremaps-bot Decoders tests please


Test data

How does the test get initial data that gets queried and updated/deleted? How do you reset the data store after tests?

Hi, you can use a mock Redis Server so that it won't affect real services. You can put the test data in prepare method (wrapped with @Before) and do some clean-up in clean-up method (wrapped with @After)


Wrap SetEndCumulVarSoftLowerBound() in C#

Great tool! Couple of issues/features we are experiencing/requiring in C# for vrp.

[x] SetArcCostForAllVehicles() crashes in C#
[ ] SetEndCumulVarSoftLowerBound() doesn't exist in C#

For 2) did you try to use it by using the "Dimension" API instead ?
https://github.com/google/or-tools/blob/master/ortools/constraint_solver/routing.h#L1544
like statute here: https://github.com/google/or-tools/blob/master/ortools/constraint_solver/routing.h#L995
For 1) I'll take a look, do you have a minimal example to reproduce it ?

Resolved.

2)Method is not available in c#

Does this mean this feature (soft bound constraints on end cumul vars) is no longer supported? I believe SetCumulVarSoftLowerBound only accepts node, not vehicle indices

In this case. it means this method has been removed from Google codebase... (few years ago ?).


Code style index.php

Couple of little bits here.

Thanks Phil. I needed to revert a recent PR on this file, and a couple of your edits were lost along the way :) You beat me to the punch.

Yeh, I saw that revert and then @jdillard added a bit of code with little things. So I thought "easy to fix in 60 seconds while waiting for breakfast".


enhancement vcluster addon

Summary
https://github.com/harvester/harvester/issues/2679#issuecomment-1661999312
Add the vcluster addon check.

When the user clicks on Enable from the list page, if the hostname is empty, we should jump to the edit page

PR Checklist
~- Is this a multi-tenancy feature/bug?
- [ ] Yes, the relevant RBAC changes are at:~
~- Do we need to backport changes to the old Rancher UI, such as RKE1?
- [ ] Yes, the relevant PR is at:~
~- Are backend engineers aware of UI changes?
- [ ] Yes, the backend owner is:~
Fixes #

Occurred changes and/or fixed issues

Technical notes summary

Areas or cases that should be tested

Areas which could experience regressions

Screenshot/Video

@mergify backport release-harvester-v1.2


The pooled fees in the parent universe should be migrated to the winning universe

Is your feature request related to a problem? Please describe.
The problem is that settlement fees are pooled in the parent universe even after a fork end. This causes two issues.

Settlement fees that are pooled in the parent universe will be stacked.
If all REP in the parent universe are migrated to child universes during a fork, settlement fees that are pooled in the parent universe will be stacked. Since no one can purchase participation tokens in the parent universe after a fork ends.

REP in the parent universe will not lose their value.
In order to further the migration, REP in the parent universe should be completely worthless after a fork ends. But if huge fees should be expected to be pooled in the parent universe after a fork,  it will be less motivated to migrate REP. Since REP holders can receive those fees by purchasing participation tokens in the parent universe. That makes the REP valuable in the parent universe.

Describe the solution you'd like
After finalizing the forking market, settlement fees that are paid in the parent universe should be pooled in the winning universe,
Additional context
In the current system, dispute windows in the parent universe are not migrated to any child universe, they are created anew. (I looked into the contracts with my untrained eye, so I might be wrong)

Regarding the winning universe,  dispute window is created when the non-forking market is first migrated to the winning universe.
https://github.com/AugurProject/augur/blob/959cabf1e3079cfdf7e4c351b6a6c9df336c6dea/packages/augur-core/src/contracts/reporting/Market.sol#L426

Regarding losing universes,  dispute window is created when the initial reporting is first done in the losing universe.
https://github.com/AugurProject/augur/blob/959cabf1e3079cfdf7e4c351b6a6c9df336c6dea/packages/augur-core/src/contracts/reporting/Market.sol#L126

Reference: https://github.com/msagansk/Augur.Guide/pull/60

REP in the parent universe will not lose their value.

I take back my words about that👆. Since after a fork starts, users cannot purchase participation tokens in the parent universe due to this line in the contract.


Adding Microsoft Graph SDK for iOS samples

This sample uses the Microsoft Graph SDK for iOS to send the signed in user a mail from an iOS application. It is illustrated with both Objective-C and Swift.

thx Simon, great stuff and good to get this kind of stuff included in the PnP as well.

Thanks Vesa! Much appreciated!


Checkout action is using old version

This needs to be updated to V3, I've created a PR that needs to be approved to fix please https://github.com/jasonwalsh/terraform-aws-boundary/pull/20

Fixed in #20


Added custom depth and stencil support to Cesium3DTileset

UE4 has a pretty handy custom depth buffer and stencil buffer. They're settings available on any primitive component, but so far it hasn't been exposed to the Cesium3DTileset actor. I added this setting and passed it to the GltfComponent so it gets applied when creating the GltfPrimitiveComponent.
I figured that setting it on creation would be a better idea than setting it on Tick (even though the engine calls generally check if there's a change before marking the component's render state dirty) because of the number of components that might exist in a scene, and I would doubt that users would need to change it at runtime.
To test this feature, you will need to configure the project to support Custom Depth, or Custom Depth with Stencil if you want to test out the stencil feature. Here's a helpful tutorial:
https://medium.com/unreal-engine-material-guides/overlapping-custom-depth-stencils-a084aa763f10
The settings I added are available in the Rendering (not Cesium|Rendering) section of the actor. After enabling Custom Depth, you should be able to see its output by going to the viewport -> Show -> Buffer Visualization -> Custom Stencil.

Thanks for the pull request @xuelongmu!

:heavy_check_mark: Signed CLA found.
:grey_question: CHANGES.md was not updated.

If this change updates the public API in any way, please add a bullet point to CHANGES.md.

Reviewers, don't forget to make sure that:

[ ] Cesium for Unreal Samples works.

Thanks @xuelongmu! The CI should pass once merged into main.


WIP: Flexbox

CSS Classes and implementations of flexbov (notably in Navbar)
Need flex grid now.

After some thought with the website I'm going to use these styles for I think that this is sufficient enough


Create Readme.md

Add readme.md file.
Sections we need -

Introduction
Contributing (redirect to contributing.md)
License
author
Contributors

Also If you have ideas on how we can improve the docs, Suggest us!
Thank you!

I would like to contribute in this issue. Please assign this to me


delay after pointer lock ?

only happens in chrome and is chrome bug or "feature"
https://mdn.github.io/dom-examples/pointer-lock/


Rils.TouchPortal version 3.0.1

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[ ] Have you tested your manifest locally with winget install --manifest <path>?
[x] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Hmm, interesting first time something conflicts for me if this repo. Bu don't know where is the problem yet.

Oh I see bot was faster than me 😆


Some cleaning up of the article templates to make it forkable

superscripted references
reordered the README.md to be something more like instructions for forking
added stub your.README.md the authors can move
Added options to the livecoms class so that we can have different formatting for different types of documents.  Right now,
Turned the template to just a best practices guide template.
Moved the figures to a separate folder.

OK, take a look now.  It doesn't have to be finalized at this point -- we need to really collect some more information before it's truly usable.

I've addressed most of the comments, though perhaps not perfectly.  I'm going to merge this in so people can start to provide feedback for the templates.


docs: make snippets copy-able

What is this change about?
Made the code blocks more consistent, and "copy-able".
Please provide contextual information.
I actually discovered the code i wanted to change was in docs-bosh - nevertheless here we are.
How should this change be described in bosh release notes?
docs: make snippets copy-able
Ya'll should checkout Conventional Commits if you haven't.
Does this PR introduce a breaking change?
Nope

All pull request submitters and commit authors must have a Contributor License Agreement (CLA) on-file with us. Please have everyone sign the appropriate CLA (individual or corporate), and send to<EMAIL_ADDRESS>
Ya'll should consider Docusign - it's a much better solution.


Craft the /graphic-design page based on the given mockup

Not sure if I am just not good at this or what, but I have no idea how I would proceed with creating this

Making it statically would work, somehow, but making it responsive and work across different screen sizes, I just don't know how to do


Direct spritesheet support

I currently have the following really basic function:
fn rect_from_tilemap_coord(x: u16, y: u16, tile_size: Option<u16>) -> Rectangle<u16>{
  let tile_size = tile_size.unwrap_or(16);
  let x = max(0, x - 1);
  let y = max(0, y - 1);
  return Rectangle {
    x: tile_size * x + x,
    y: tile_size * y + y,
    width: tile_size,
    height: tile_size
  }
}

Which is basically a really hacky way to get a Rectangle that represents an area of a spritesheet.  I'm likely to create an enum of all the sprites in the spritesheet, but I was wondering if there was some "better" way to do this in the actual engine.  A SpriteSheet that wraps an Image and takes grid coords rather than a quad maybe?  Or some way to load a spritesheet from which you can get the source rectangle for a given sprite?
It may be that the best way to do it is indeed for me to create myself a tilemap class, that the renderer owns and have an enum that the renderer knows how to convert into a rectangle, but I thought I'd bring this up.

A SpriteSheet type is definitely something to consider adding into the engine.
It's not there yet because there are many different approaches we could take and I had a hard time choosing one. Thus, I preferred to leave it up to users to implement one and wait until we see a pattern or a common approach, and design based on that.
Ideally, I would like something as type-safe as possible (i.e. something that avoids referencing sprites out of bounds, like the texture_array module). However, I am not sure if the amount of type-safety we can get is worth it in this case.
For instance, enums work well for item sprites, but once you add animation into the mix they become a hassle.
Overall, I am unsure if there is a generic approach to satisfy most use cases here without promoting bad practice. We may be missing additional concepts, maybe we need different types of sprite sheets... I will keep thinking about it!
If anyone has built something similar or has any ideas, feel free to share your thoughts here. It may help us find a good solution.

@RantingBob Meanwhile, for your use case, if you need to refer individually to each sprite I would use an enum and have a struct wrapping an Image or a Batch, taking only values of this enum to perform draw operations.

I don't have any ideas at this time.  I'll implement something and come back to you.  As an aside, Batch vs Image for spritesheets?

@RantingBob Batch will allow you to draw many sprites at once efficiently. If you are drawing a tilemap, it's definitely the recommended approach.

I just started messing around with Coffee, but this is what I made to handle sprite sheets. Functionality is very basic, but seems to work ok. Still needs some sanity checking like making sure a requested sprite is actually within bounds or that a given image can fit the stated number of rows and columns.
use coffee::graphics::{Point, Rectangle, Image, Sprite};

//size of a single sprite in the Sprite Sheet
struct SpriteSize { pub width: u16, pub height: u16}

//An array of sprites packed into a single image, also called an Atlas.
pub struct SpriteSheet {
    atlas: Image,
    sprite_size: SpriteSize,
}

impl SpriteSheet {

    pub fn new(image: Image, rows: u16, columns: u16) -> SpriteSheet {
        let sprite_size = SpriteSize {
            width: image.width() / columns,
            height: image.height() / rows,
        };

        SpriteSheet {
            atlas: image,
            sprite_size,
        }
    }

    //Extract a specific sprite from the sprite sheet
    // @position: provided position of the sprite on the target screen/frame/etc.
    // @row: Which row of the atlas we are requesting. Note row starts at 1
    // @column: Which column of the atlas we are requesting. Note column starts at 1
    // returns: Image object of full atlas, used in drawing
    //          Sprite object depicting a single sprite in the atlas

    pub fn get_sprite(&self, position: Point, mut row: u16, mut column: u16)
           -> (Image, Sprite) {

        //adjust row/column for calculating sprite position in atlas
        row = row - 1;
        column = column - 1;

        //define these for brevity
        let sprite_width = self.sprite_size.width;
        let sprite_height = self.sprite_size.height;

        //return full atlas image and requested sprite's location in the atlas.
        (self.atlas.clone(), //note coffee docs says cloning Image is very cheap
         Sprite {
            source: Rectangle{
                x: column * sprite_width, y: row * sprite_height,
                width: sprite_width, height: sprite_height,
            },
            position: position,
            scale: (1.0,1.0) //assume normal scale, lets other code change it as needed
        })
    }
}

Usage in Game::draw is like this:
let position = Point::new(100.0, 100.0);
let (image, sprite) = self.player_spritesheet.get_sprite(position, 5, 1);
image.draw(sprite, &mut frame.as_target());

Feel free to use it. Might be an ok starting point.


Multiple renders support

Hello everybody.
I have a simple question: does FluentEmail support mutiple renders at the same time?
I mean: I have a case where the templates depend on some business logic and they can be Liquid or Razor or a CustomRender. Is there a way to apply/invoke the correct render before sending the message?
For example:
public void ConfigureServices(IServiceCollection services)
{
    services
<EMAIL_ADDRESS>        .AddRazorRenderer()
        .AddLiquidRenderer()
	.AddCustomrenderer()  	// Razor, Liquid, Custom are the 3 available renderers
        .AddSmtpSender("localhost", 25);
}

Then:
var email = Email
    .From()
<EMAIL_ADDRESS>    .Subject("Using a template 'by-name'")
    .UsingTemplate(template, model, 'Razor');

   // OR

var email = Email
    .From()
<EMAIL_ADDRESS>    .Subject("Using a template by extension")		// .cshtml = Razor, .liquid = Liquid, .custom = Custom
    .UsingTemplateFromFile("./App_Data/Templates/Template.cshtml", model);

   // OR

var email = Email
    .From()
<EMAIL_ADDRESS>    .Subject("Using a template by fluent call")
    .WithRenderer(new RazorRenderer())
    .UsingTemplateFromFile("./App_Data/Templates/Template.cshtml", model);

BTW: I understand I can set a provider using Email.DefaultRenderer = new RazorRenderer() and this could partially apply to my case. But is it thread-safe? Is it the correct pattern?
Thank you in advance for any advice.
-m

I'm going to answer to myself.
Looking at the tests and the code, I found that DefaultRenderer  is static (thus it's not thread-safe) but I can always set the Renderer property of the IFluentEmail interface and that would solve my case.
I just created some method extensions to IFluentEmail to apply the renderer still using the DI, something like this:
var email = Email
    .From()
<EMAIL_ADDRESS>    .Subject("Using a template by fluent call and DI")
    // By type
    .UsingRenderer<RazorRenderer>()
    // Or by name/key
    .UsingRenderer(nameof(RazorRenderer))
    .UsingTemplate(template, model);

Thank you very much.
-m

I'm going to answer to myself.
Looking at the tests and the code, I found that DefaultRenderer  is static (thus it's not thread-safe) but I can always set the Renderer property of the IFluentEmail interface and that would solve my case.
I just created some method extensions to IFluentEmail to apply the renderer still using the DI, something like this:
var email = Email
    .From()
<EMAIL_ADDRESS>    .Subject("Using a template by fluent call and DI")
    // By type
    .UsingRenderer<RazorRenderer>()
    // Or by name/key
    .UsingRenderer(nameof(RazorRenderer))
    .UsingTemplate(template, model);

Thank you very much.
-m


FEAT: hotkey to active search

The search box in the launchCustom.js file is not overwritten.

The search box in the launchCustom.js file is not overwritten.

done, updated


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target/pull/266 is merged into live branch.
Auto archive content to https://github.com/OPS-E2E-PPE/docs-archive-test-target.git

Docs Build status updates of commit b6c033a:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error]

Cannot sync git repo to specified commit because branch Release_Archive_master_2020-01-10-06-46-11 has been deleted or has been force pushed: fatal: couldn't find remote ref refs/heads/Release_Archive_master_2020-01-10-06-46-11

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


[QUESTION] Python keeps **ing when trying to run/test process_read and process_bam

Instructions

The more information/context you provide, the better we (the instructors and class) can collectively assist you.

Please fill out all of the relevant sections below. Incomplete questions will not be addressed by the instruction team.

Questions asked without showing an attempt to answer individually will also not be addressed.

It is bad etiquette to ask things such as "I don't know how to do this, can you tell me how?" or "I can't get this code to work, what is wrong?" if you do not provide the context and/or screenshots necessary to
help.

Question (continued)
Describe the context or additional details that may be necessary to resolve this question.
I'm unable to test/run all of the code I've written for the process_read and process_bam functions-- I think it is due to the .bam file sizes being so large. The kernel will consistently * out, and the code won't run until I interrupt the kernel. It's making it so I can't test my functions.
# Paste your code in this code block (if needed)
This is relevant to my process_read function (can't copy and paste all the code)

What do you have?
Use this space to describe what resources/functions/code you have that you feel may be relevant to answering this question.
Not sure-- I have been trying to take excerpts from the .bam files to test smaller portions.
Additionally, if this is a coding question, describe what input this problem section of code requires. By "input", we mean what type of data it is.
# Paste your code in this code block (if needed)

What do you need?
Use this space to describe what resources/functions/code/data you believe is required to determine if this question has been solved.
I think I need a smaller version of the .bam files to test, or to figure out a way to only test parts of the large .bam files in the "for read in bam" loop.
Additionally, if this is a coding question, describe what output this problem section of code requires. By "output", we mean what type of data it is.
# Paste your code in this code block (if needed)

What have you done?
Use this space to describe what approaches you have done in your attempts to solve this question yourself. This is the *most important part of your question.
I have tried taking excerpts from the normal.bam file and the tumor.bam file to make smaller files of reads to test. That caused the bamnostic library to crash.
If this is just a general question
Describe what your hypothesis of what the answer is here
How should we go about testing? Are there smaller files of normal.bam and tumor.bam we could use?
If this is a coding question
We require you to post your code, error messages, and output of your code here.
User-written code
# Paste your code here

Observed error messages
# Paste the observed error messages here

After one of the attempts, it *ed out for a long time, then displayed this error message:
 UserWarning:C:\Users\jgand\Anaconda3\lib\site-packages\bamnostic\bam.py:310: No supplied index file was not found. Random access disabled

Observed output of code (other than error messages)
# Paste the output of your coding attempts here

Checklist
Replace the space in between the brackets with an X

[ x] Identified what you already have available to address this question
[ ] Identified what you need to reach an acceptable answer
[ x] Shown what you have done up to this point

[ ] A hypothesis if this is a general question
[x ] Your code, error messages, and output if this is a coding question

This code is supposed to take about 3-5 minutes to complete from start to finish. This assignment was designed to demonstrate a simplified version of handling big data. This is why we strongly recommended that students begin this assignment as soon as possible.
I like that you tried to subset the files to make them smaller, but these files are not plain-text files. They are binary files (Binary Alignment Map: BAM), which is why you needed to use bamnostic. That means you cannot simply take the first n lines and be fine. That is why bamnostic "crashed", because it was no longer handling a BAM file.
However, I understand that you would like to attempt to work on smaller data. To that regard, I added some additional files to the repo via c62070b. To get these updates, just update your repo. These files are about 10% of the size of the original.
Remember though, B. subtilis has a small genome. Imagine if you were trying to do this on any Homo sapiens samples. Even the smallest human chromosome (chr21) is 48 Mb...that is a whole order of magnitude larger than B. subtilis.

@jagandhi I had a similar problem on my machine. Here's how I tested the functions on the original BAM files. Basically, I started a counter for each read and when it reached some cut-off (n) I stopped by breaking the loop. Then I could scale up by increasing n until I was ready to remove that if else loop entirely.
n = 100
read_count = 0                   # start a counter
for read in bam:                 # loop through reads
    read_count += 1              # increment counter for each read
    if read_count < n:           # process_read() as long as there are fewer than n reads
        process_read()
    else:
        break                    # stop looping when n is reached


FIX: reset_camera

This PR brings back control over the camera and fixes the 'Bouncing Brain' issues:

master
PR

Thanks @GuillaumeFavelier


The snake that bites another snake does not get a point

Fixing a bug where the bitten snake looses a point but the biting snake doesn't get one.

This problem should be solved? #40


:bug: Update IPPool status timestamp only when allocations are updated

What this PR does / why we need it:
This PR updates IPPool status timestamp only when the IPPool allocations are updated.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #12

/ok-to-test

/approve
/Lgtm