Small main docs page edits

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 97.80%. Comparing base (9f9f683) to head (417778d).

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #71      +/-   ##
==========================================
+ Coverage   95.42%   97.80%   +2.38%
==========================================
  Files           5        5
  Lines         546      546
==========================================
+ Hits          521      534      +13
+ Misses         25       12      -13

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Should not automatically select the date while navigating with the keyboard

I would expect that while navigating with the keyboard, the value of the date (in the Input) won't get set until the user presses Enter key.
It isn't an expected behaviour when the user presses 'Escape' key, that the value will indeed get selected. that means that Enter and Escape have the same roll which is solely to close the Calendar..

Resolved by #673 ?


add fastpitch service

Please describe the changes in your PR. If it is addressing an issue, please reference that as well.
rough draft PR adding nvidia fastpitch TTS support.

closing in favor of vp-nvidia-riva #795


[Light Switch Widget] handle and intercept swipe event

WIP
I've tried to use the same kind of logic present for the drag event.
Don't know if it would be better to do some refactor to use the new E.stopEventPropagation() function?
Edit:
And to add, I don't really understand why this works, but from testing it it seems to at least.

I'd say use E.stopEventPropagation(); if you can - it's a shame to be adding hacks when the underlying problem is already solved. As long as you check that  E.stopEventPropagation(); exists first, on old firmware it'll continue as before, and on new firmware it'll be fixed

Also, I didn't see this when I replied to the bug you filed and closed: https://github.com/espruino/BangleApps/issues/2754#issuecomment-1547357991
But it looks like it's basically what you're doing here

I think my changes as they are now will sometimes mess up swipe handlers e.g. for clock infos and quicklaunch so they are not responsive. I'll see when I get back to this.

I'd say use E.stopEventPropagation(); if you can - it's a shame to be adding hacks when the underlying problem is already solved.

Don't Light Switch's handlers need to be placed first, with the concat-lines, in order to stop the propagation before the event reaches other handlers?

Yes, but it looks like they are?

Yes, ok, I thought that was part of the hack we wanted to avoid. Thanks

Yes, ok, I thought that was part of the hack we wanted to avoid. Thanks

Ideally yes, but I don't think there's a way around it at the moment (unless I add extra options to on like on(event, callback, {first:true}))

Ideally yes, but I don't think there's a way around it at the moment

Ah, I see 👍

This has been working for me for a week now. Ok to merge by me. I still don't really understand HOW it works though...

Please can you use E.stopEventPropagatio&&E.stopEventPropagation();  like I'd suggested above?

Please can you use E.stopEventPropagatio&&E.stopEventPropagation(); like I'd suggested above?

Added it in. I hope I did it correctly - I tried it on the watch and it seems to work.

Sorry, you actually need it instead of the fiddling with handlers, so:
swipeListener: function(_,__) {
      // setup shortcut to this widget
      var w = WIDGETS.lightswitch;

      // masks this swipe event by messing up the event handler
      // see https://github.com/espruino/Espruino/issues/2151
      Bangle.removeListener("swipe", w.swipeListener);
      Bangle["#onswipe"] = [w.swipeListener].concat(Bangle["#onswipe"]);
      E.stopEventPropagation&&E.stopEventPropagation();
    },

should be:
swipeListener: function(_,__) {
      // masks this swipe event
      E.stopEventPropagation&&E.stopEventPropagation();
    },

and the same where the other call to stopEventPropagation was too - it won't work on 2v17 and before but should work on cutting edge

... Will break the masking behaviour on 2v17?

Yes, that's right. Ok - probably a good idea then. Hopefully I'll be able to get a 2v18 release out soon

@thyttan @gfwilliams
I believe 2v18 is already out. ;)

Thanks!


Migrate to RTHandle

[x] Integrate RTHandleSystem in the renderer
[x] Add custom reallocate function
[ ] Camera RT
[ ] Pre-Pass RTs (Depth, Normals, MotionVectors)
[ ] Shadowmaps (VSM)
[ ] Shadowmaps (Blob Shadows)
[ ] SSAO temp targets
[ ] Post-Processing temp RTs
[x] TAA History
[ ] ...

Can do together with #203


Fixes to addon_before and addon_after elements

Addresses issues #153 and  #349.  PR #308 also addresses part of what this PR addresses; however, it took me a few goes reading the changes to understand the changes as written.
@dyve, what kind of unit test would you like to see added to this PR?

@dyve Can I get a review on this?

Should be coming up shortly, either from me or from someone on our team.

I thought this was in my PR but evidently it was not. Here's a JS Fiddle of what this PR fixes.  The first section is with the added divs and the 2nd shows what it's like without them present.
https://jsfiddle.net/Bengt/tvow8s6x/21/


dont use call_intrinsic, use the intrinsic directly

Checklist

[ ] Linked to Github Issue
[ ] Unit tests added
[ ] Integration tests added.
[ ] This change requires new documentation.

[ ] Documentation has been added/updated.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 90.26%. Comparing base (e571acd) to head (6793f2a).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #507      +/-   ##
==========================================
- Coverage   90.28%   90.26%   -0.03%
==========================================
  Files         107      107
  Lines       34559    34480      -79
==========================================
- Hits        31202    31122      -80
- Misses       3357     3358       +1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Endless loop on Skip folder, when no articles are unread

Version 3.1.6 RC 1 :1cdc5ae:
When no articles are unread and I activate the "Skip folder" function Vienna gets into an endless loop. It gets unresponsive and the spinning beach ball is shown.
I managed that in two ways:

Use the hot key shift-cmd-S, when no articles are unread
When only one article is unread and I use the "Skip folder" button to go to it. After a short delay that article is marked read, but the "Skip folder" button remains active. When I now push the "Skip folder" button, it gets into the endless loop.

Closed by PR #697


Add support to stream effects and operations

This is an attemt to bring support to stream /effects to the Golang SDK.
Unlike in the JavaScript SDK this is not yet supported by the Go SDK (if I understood correctly).
Feedback welcome, especially concerning the Effect struct - I'm not sure whether I catched all properties, and wasn't sure where to get a complete list of them. I assembled them looking at a test file in the JS-JDK.
Code snipped to stream /effects:
package main

import (
	"fmt"
	"github.com/stellar/go/clients/horizon"
	"golang.org/x/net/context"
	"log"
)

func main() {
	client := horizon.DefaultTestNetClient
	cursor := horizon.Cursor("now")
	ctx := context.Background() // Stream indefinitly

	err := client.StreamEffects(ctx, &cursor, func(l horizon.Effect) {
			fmt.Printf("%+v", l)
	})

	if err != nil {
		log.Fatal(err)
	}
}

I've also added support for the /operations endpoint.

The Operations struct is lacking fields for some types of operations. I have proposed a pull request with the changes.
However, the structs for Effect and Operation have been defined in the protocols/horizon package (added in #433). Should client/horizon use those, or will it keep using the structs defined in responses.go?

Thanks for pointing this out!
I'd be in favour of using officially provided structs. But after skimming over protocols/horizon/effecs, if I understand correctly you'd have to first check what kind of effect incoming effects are before you can parse it into the respective struct?
e.g. you need to know that the incoming effect is of type trustline_created and then you can parse it into the TrustlineCreated struct?
In the streaming case, though, it must be possible to parse all incoming effects into a struct no matter of its type. Or am I missing something here?

Could this be solved by having an Operation interface, that is passed to the operation handler. Then this interface can have methods to return the proper struct depending on the operation's type_i ?
#491 is about this, but the Payment struct wasn't changed yet.

Closing this as the new Go SDK is coming shortly.


Using the Chinese input method to enter characters on the Firefox browser will appear twice

Using the Chinese input method to enter characters on the Firefox browser will appear twice.
But this problem does not occur on chrome
monaco-editor version:** 0.16.2
Browser: firefox 63.0.1
OS:win10 (17763)

@wzqiang1332 Can you reproduce in the editor at http://vscode-web-test-playground.azurewebsites.net/ ?

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


chore: upgrade to<EMAIL_ADDRESS>

Upgrade react-router to version 6.
This solves #127

@MarkLyck Thanks! I can confirm this works after updating test/fixtures/react-ts-basic. However, I still need to check if it still works with vitedge package, which is wrapping this one.
I see React Router 6 is renaming the routes syntax:

route.routes => route.children
route.component => route.element

I wonder if we should also update the API in vite-ssr/react for this 🤔

@MarkLyck Released in 0.16.0, thanks for your help!


When a URL is added as evidence, expanding/constricting indicator grossly expands the indicator info to the right

See attached media:

Deployment Verification

[x] Confirmed “Ready for Deploy” status
[x] Media Verifying:


Fix smoke test path comparison logic, uncomment test which was broken [phab:D2323]

Created by danielmoy-google at 2018-05-18 23:49:53:

fromberger commented inline (context lost during migration) at 2018-05-19 23:12:02:
rf := map[string][]byte{
   "foo.java": []byte("stuff"),
   "bar.java": []byte{"stuff"},
}

and in other places where this pattern is apropos

fromberger commented inline (context lost during migration) at 2018-05-19 23:12:02:
	cu := &kindex.Compilation{
		Proto: &apb.CompilationUnit{
			VName: &spb.VName{
				Corpus: "test",
				Path:   "fakepath",
			},
			SourceFile: files.requiredInput,
		},
	}

fromberger commented inline (context lost during migration) at 2018-05-19 23:12:02:
Deferred operations don't happen till the function returns, so the loop will stack them up. More importantly, we should check the error from closing a file that's open for writing, since some errors may not be observed till close.
Maybe pull this into a helper? (Warning: Untested example)
func writeUnitFile(ctx context.Context, path string, unit *kindex.Compilation) error {
   f, err := vfs.Create(ctx, path)
   if err != nil {
      return err
   } else if _, err := unit.WriteTo(f); err != nil {
      f.Close()
      return err
   }
   return f.Close()
}

fromberger commented inline (context lost during migration) at 2018-05-19 23:12:02:
The context should come in as a parameter.

fromberger commented inline (context lost during migration) at 2018-05-19 23:12:02:
Please add a context parameter.
Be careful about APIs with lots of consecutive string-type arguments; it's really easy to mix up which is which at the call site, and the compiler can't help debug them.
This case isn't so bad, but if it grows you might consider a parameter struct instead:
type Repo struct {
   URI        string
   OutputPath string
   ConfigPath string
}

func (e testExtractor) ExtractRepo(ctx context.Context, r Repo) error {

or words to that effect. This makes call sites self-documenting,
ext.ExtractRepo(ctx, smoke.Repo{
   URI:        "https://github.com/here/comes/the/airplane.git",
   OutputPath: "/tmp/repojunk/foo",
   ConfigPath: "/tmp/test/config.json",
})

fromberger wrote at 2018-05-19 23:12:02:
Can you please update the summary to be a bit more specific about what the refactoring is?
It looks like functional changes are included, and I have no real objection to that, but I wonder if we shouldn't separate those from true refactorings.

craigbarber commented inline (context lost during migration) at 2018-05-21 16:49:24:
Consider renaming coverage to either: expectedCoverage or wantCoverage, to make it clear from the signature what the intention of the variable is.
Separately, consider making the expected value a struct {Extracted, Downloaded, wantCoverage} so that you can test for cases of expected failed fetching and/or extraction as well.

craigbarber commented inline (context lost during migration) at 2018-05-21 16:51:07:
It might be worthwhile to check to see what the convention for CU paths are and test for correctness there as well.

danielmoy-google wrote at 2018-05-21 17:14:58:

! In (earlier comment), fromberger wrote:
Can you please update the summary to be a bit more specific about what the refactoring is?
It looks like functional changes are included, and I have no real objection to that, but I wonder if we shouldn't separate those from true refactorings.

Oh yea sorry, I was getting a bit chain-happy on the commits late last week and was basically just reusing the same env for all the commits, which means every commit beyond the first one had a nonsensical commit message.  Updated.

danielmoy-google commented inline (context lost during migration) at 2018-05-21 17:27:01:
Noted, though for now this test harness has no dep on vname/cu Path at all, so it's explicitly not tested.  I imagine this could change in the future.

danielmoy-google commented inline (context lost during migration) at 2018-05-21 17:27:01:
noted this refactor seems good to do, though I would prefer to do it in follow-up commit

danielmoy-google wrote at 2018-05-21 17:28:08:

! In (earlier comment), fromberger wrote:
Can you please update the summary to be a bit more specific about what the refactoring is?
It looks like functional changes are included, and I have no real objection to that, but I wonder if we shouldn't separate those from true refactorings.

Ah yea I got a bit lax with the chained commits from late last week, and forgot to updated the summaries.  The 'refactoring' was the first commit in a chain of like 4 commits, the other ~three (including this one) should have used different summaries, woops.

fromberger commented inline (context lost during migration) at 2018-05-21 17:46:27:
That's reasonable. Please use context.TODO() instead of context.Background() in the places where it remains to be updated later—the result is the same, but it's easier to search for.

danielmoy-google wrote at 2018-05-21 18:00:16:

Merge branch 'master' into fuzz
Addressing comments

danielmoy-google wrote at 2018-05-21 18:14:06:

Fixed test, no longer using vfs

danielmoy-google commented inline (context lost during migration) at 2018-05-21 18:14:08:
from offline discussion: probably shouldn't have been using vfs here in the first place, just using simple files.  Inside the unit test, all this is temp dir stuff anyways, so no point in taking the overhead that vfs brinsg.

fromberger commented inline (context lost during migration) at 2018-05-21 20:03:22:
Please document what the parameters mean (particularly expectedCoverage)

fromberger commented inline (context lost during migration) at 2018-05-21 20:03:22:
t.Helper()

fromberger accepted this revision at 2018-05-21 20:03:22

danielmoy-google closed via commit 98ec95c98296c552488ab978f17d3df7e8f6baa9 at 2018-05-21 20:08:49


use cursor position info from analyzer refactorings

When calling the ‘wrap with widget’ refactoring, we should use the returned info about where to position the cursor.

In the above images, the cursor is position after the manipulated widget, but we should instead be selecting the text widget, to allow the user to name the newly inserted widget.

Looks like we get either a selection offset or a list of "linked edit groups" which are regions to be selected and edited simultaneously. These look similar to how the stful live template in IntelliJ will produce a StatefulWidget and State class, put the cursor where the name for the widget should go, and then update the State object's name as you type the widget's name.
My plan is to expose all possible information in the data returned by dart-services, and then we can update dart-pad incrementally. For a start, it's probably enough just to figure out where to leave the cursor, though CodeMirror does support multiple cursors at once and related fanciness.

We now have a valid cursor position after each assist/fix. DartPad still needs a proper UI for the linked edit groups referenced above. That's now being tracked as #1213.


Filter conditions need to be change according to Boolean in newsletter subscription grid for subscribed column

Bug report
Title
Filter conditions need to be change according to Boolean in newsletter subscription grid for subscribed column
Preconditions
1. framework Version. Master

Expected result
boolean  conditions should be there
Actual result

Fixed in master


Journal service

addresses #5 Dockerize Journal Service

to test: present a crossref JSON blob resulting from a lookup, and get a journal object in return. if we have the journal object, it returns what we have, else a new one.

this one definitely is found in  our data, as it knows about PMC Participation (xref does not)
curl -d '{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2019,2,13]],"date-time":"2019-02-13T14:58:05Z","timestamp":155006885270},"reference-count":0,"publisher":"Oxford University Press (OUP)","issue":"11","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Acta Biochim Biophys Sinica"],"published-print":{"date-parts":[[2007,11]]},"DOI":"10.1111\/abbs.2007.39.issue-11","type":"journal-issue","created":{"date-parts":[[2008,2,4]],"date-time":"2008-02-04T14:33:23Z","timestamp":1202135603000},"source":"Crossref","is-referenced-by-count":1,"title":[],"prefix":"10.1093","volume":"39","member":"286","container-title":["Acta Biochimica et Biophysica Sinica"],"original-title":[],"language":"en","deposited":{"date-parts":[[2008,2,4]],"date-time":"2008-02-04T14:33:23Z","timestamp":1202135603000},"score":1.0,"subtitle":[],"short-title":[],"issued":{"date-parts":[[2007,11]]},"references-count":0,"journal-issue":{"published-print":{"date-parts":[[2007,11]]},"issue":"11"},"URL":"http:\/\/dx.doi.org\/10.1111\/abbs.2007.39.issue-11","relation":{},"ISSN":["1672-9145","1745-7270"],"issn-type":[{"value":"1672-9145","type":"print"},{"value":"1745-7270","type":"electronic"}],"subject":["Biophysics","Biochemistry","General Medicine"]}}' -H "Content-Type: application/json" -X POST http://localhost:8087/journal/

This service has been updated and renamed. new PR will be submitted


Support oceanic library

Oceanic.js

https://github.com/Deivu/Shoukaku/pull/105

Thanks for the PRs


TLS routes are not matched to TLS gateway listener when ISTIO_MUTUAL mode is set

Bug Description
Background context
I try to create a TLS listener in the egress gateway with ISTIO_MUTUAL tls mode. The use case is to have a TCP proxy that forwards outbound traffic to external services, but still to use mTLS within the service mesh.
I apply the resources shown below, but then Istio logs info    gateway omitting listener "<IP_ADDRESS>_8443" due to: must have more than 0 chains in listner "<IP_ADDRESS>_8443".
The problem is that TLS matching rules specified in virtual service are not matched to TLS server configured in egress gateway.
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: istio-egressgateway
spec:
  selector:
    istio: egressgateway
  servers:
  - port:
      number: 443
      name: tls
      protocol: TLS
    hosts:
    - www.example.com
    tls:
      mode: ISTIO_MUTUAL
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: example-com-routing
spec:
  hosts:
  - www.example.com
  gateways:
  - istio-egressgateway
  tls:
  - match:
    - gateways:
      - istio-egressgateway
      port: 443
      sniHosts:
      - www.example.com
    route:
    - destination:
        host: www.example.com
        port:
          number: 443

Details
I looked at the code base and I think that I found a bug. There is a function buildGatewayTCPBasedFilterChains responsible for creating gateway listener and its filter chains. Its implementation calls function createGatewayTCPFilterChainOpts when server is listening on TLS. But this function creates filter chain from TCP routes, so none of TLS routes are matched.
A workaround is to apply virtual service with TCP matching rules and it works, but it's no longer possible to perform SNI-based routing.
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: example-com-routing
spec:
  hosts:
  - www.example.com
  gateways:
  - istio-egressgateway
  tcp:
  - match:
    - gateways:
      - istio-egressgateway
      port: 443
      # sniHosts:
      # - www.example.com
    route:
    - destination:
        host: www.example.com
        port:
          number: 443

Suggested solution
Function createGatewayTCPFilterChainOpts needs another condition in the existing if-statement for case where a server has TLS port and tls mode is not PASSTHROUGH.
If you agree with me, I could fix it.
If this is by design, a proper validation must be added.
Version
Istio: 1.12.1
Kubernetes: 1.21.1

Additional Information
No response

Yes, that is the case. Hypothetically it could work that way but it doesn't - not sure of the background here.
You can use a tcp route and, which still effectively allows you to do SNI routing though (because the Gateway hostname selects the SNI)


Add zsh completion for 'docker {build, volume create, network create}…

Ref: #21270
@albers Thx for the ping
Signed-off-by: Steve Durrheimer<EMAIL_ADDRESS>

LGTM :cat:

LGTM


Increase direct usage of Tekton Object Interface

This PR further increases the usage of the Tekton object interface in our codebase. It also removes the dependence of the Tekton object interface on the v1beta1 type by further generalizing the definition of the ParamValue.

Changes

Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[ ] Has Docs included if any changes are user facing
[x] Has Tests included if any functionality added or changed
[x] Follows the commit message standard
[x] Meets the Tekton contributor standards (including
functionality, content, code)
[x] Release notes block below has been updated with any user facing changes (API changes, bug fixes, changes requiring upgrade notices or deprecation warnings)
[ ] Release notes contains the string "action required" if the change requires additional action from users switching to the new release

Release Notes
Internally increase direct usage of Tekton Object Interface

/kind cleanup

/assign @lcarva

/retest

/approve


Enable mixed precision

Is it possible to use TensorFlow's mixed precision for a performance boost on newer nvidia graphics cards?
from tensorflow.keras.mixed_precision import experimental as mixed_precision

policy = mixed_precision.Policy('mixed_float16')
mixed_precision.set_policy(policy)

yolo.make_model()

Right now it throws a TypeError when trying to do this because the outputs and inputs will not match in the existing model.
TypeError: Input 'y' of 'AddV2' Op has type float32 that does not match type float16 of argument 'x'.

Am I doing something wrong in enabling it this way or is it just not possible with the current implementation?

https://github.com/hhk7734/tensorflow-yolov4/blob/be7b9305fcef1d1245948c26612c31f6d3212c5e/py_src/yolov4/model/yolov4.py#L98
https://github.com/hhk7734/tensorflow-yolov4/blob/be7b9305fcef1d1245948c26612c31f6d3212c5e/py_src/yolov4/model/yolov4.py#L128
remove the code above.
I plan to modify the head part. (#47 ) But, I'm busy these days...
So, if it is difficult to wait for the update, you will have to write your own head.

https://github.com/hhk7734/tensorflow-yolov4/blob/be7b9305fcef1d1245948c26612c31f6d3212c5e/py_src/yolov4/model/yolov4.py#L98
https://github.com/hhk7734/tensorflow-yolov4/blob/be7b9305fcef1d1245948c26612c31f6d3212c5e/py_src/yolov4/model/yolov4.py#L128
remove the code above.
I plan to modify the head part. (#47 ) But, I'm busy these days...
So, if it is difficult to wait for the update, you will have to write your own head.

On yolov4 v3.0.0, you can enable mixed precision.
yolo.predict or yolo.inference use yolo_diou_nms.
https://github.com/hhk7734/tensorflow-yolov4/blob/211afddf827d558fd7cfcef2cee21beda1c34ce4/py_src/yolov4/tf/__init__.py#L134-L136
But, this allows only np.float32 type array. So if you want to enable mixed precision, modify the code shown below.
    if candidates is not np.float32:
        candidates = candidates.astype(np.float32)
    pred_bboxes = self.yolo_diou_nms(
        candidates=candidates, beta_nms=self.config.yolo_0.beta_nms
    )


Connect-DbaInstance - Added very verbose output to debug

Ok, @potatoqualitee here is the pull request. Please play around with it, it is very interesting, I've learned a lot.
Sorry, now time for more info or screenshots. Just connect to some instances:
$server = Connect-DbaInstance -SqlInstance $instance -SqlCredential $cred -Verbose -VeryVerbose

Ok, I have a screenshot now:

If I connect using a full name "sqlix.ordix.de", then the returned .ComputerName is just the .NetName which is just the hostname without the domain.
But I think I've seen screenshots with a full name returned as .ComputerName. And I would expect to have the $instance.ComputerName to be transfered to $server.ComputerName, because if I need the .NetName I can just use it as it is part of the official smo.
If someone could try this on other environments and send screenshots or outputs that would be great.

I'd have to go back through our git log (GitHub doesn't show all file history before of the file renamed we did) but I recall we intially started out using netname but in domain environments that have multiple forest and domains it will be the wrong value and not the machine the user actually connected with or something.
Fairly sure we have some conversation recorded on here but I'll have to go looking through history.
In reference to the messaging system that is all written up in the wiki: https://github.com/sqlcollaborative/dbatools/wiki/Implementing-the-messaging-system (this is Fred's brain child and equivalent to what you get in PSFrameworks module).

I've probably got something turned around on the netname. We went through many iterations trying to fix massive bugs in that connect command so not sure why we ended up doing some things.

Ok, I used:
        Write-Message -Level VeryVerbose -Message "Starting process block veryverbose"
        Write-Message -Level SomewhatVerbose -Message "Starting process block SomewhatVerbose"

But then they show up in "normal" -Verbose, which I don't want to.
So I will change everything to Debug...

Oh yeah forgot about that being treated as all verbose.
That data gets written to our log file but not sure we have mechanism to keep it off host.

Added more info to show that $instance.FullSmoName is used in the smo constructor and so goes into $server.Name - so .Name has the full name when the $instance was build with the full name.

Awesome, PR, thank you @andreasjordan ! This was very helpful.


Optional Popup after idle time has beed detected, confirming break.

Idea:

Idle time detected
Immediately show annoying popup asking "Did you take a break? - Yes/No"
If Yes is clicked the tool continues operation as usual (counting whole idle time as a break)
If No is clicked the idle time is counted as worktime

Implementation problems:
History rewrite problem:

when clicking "No" user by definition needs to make mouse/key input.
This causes new worktime block to be started
Either need to delay reaction to key/mouse events until popup is evaluated (problem is when popup is ignored)
Or re-write history in case of "No" click

When to show popup

Immediately after idle time hit
When activity is sensed after system was idle

How to guarantee user reacts to popup / What to do if user does not click?

Maybe yould solve many implementation problems by making the popup less powerful:

Show popup as some 10 seconds BEFORE timeout is hit.
Only ask: "Are you still working? Yes"
If user presses Yes, he automatically moves mouse and hence shows he is still working
If user does nothing he confirms he is away and the tool continues working as usual
Popup disappears automatically once hitting timeout (after ~10s)


Update README.md installation

Fix installation workflow

thanks @KOWLOR - I've been slacking on my maintenance clearly


(1126c) Add refer case list integration tests

Context

#441, #424, and earlier PRs developed case lists in the Refer journey, but didn't add any integration tests
Changes in this PR

Add integration tests for Refer case lists

Release checklist
Release process documentation
As part of our continuous deployment strategy we must ensure that this work is
ready to be released once merged.
Pre-merge

[ ] There are changes required to the Accredited Programmes API for this change to work...

[ ] ... and they have been released to production already

Post-merge

[ ] This adds, extends or meaningfully modifies a feature...

[ ] ... and I have written or updated an end-to-end test for the happy path in the Accredited Programmes E2E repo

[ ] This makes new expectations of the API...

[ ] ... and I have notified the API developer(s) of changes to the contract tests (Pact), or the API is already compliant

[ ] Manually approve release to preprod
[ ] Manually approve release to prod

 Remove "Date referred" column from Assess case list (S)


Release 4.8.10

Which issue this PR addresses:
Work Item №10405746.
What this PR does / why we need it:
Brings installer 4.8 into the RP.
Test plan for issue:

E2E run
Create a cluster locally

Is there any documentation that needs to be updated for this PR?
No. User facing communications are being handled separately.

I think https://github.com/openshift/installer/pull/4666 breakes our code: we were relying on defaults set here:
https://github.com/openshift/installer/blob/94125b21304a574ae5bc98039f8eb7f518293b83/pkg/asset/machines/master.go#L252-L253
But these defaults are not longer propogated to the installer config becuase this:
https://github.com/openshift/installer/blob/94125b21304a574ae5bc98039f8eb7f518293b83/pkg/asset/machines/master.go#L150
changed to this in 4.8:
https://github.com/openshift/installer/blob/c06e9b1562ccb76ac23163fb8db35f231ead6e97/pkg/asset/machines/master.go#L150

overall looks good! :)

Previous e2e run failed, but it looked like a flake. Waiting for another e2e run, but I think this is ready for review now.

I created a separate PR on top of this one to set min TLS version to 1.2 for storage accoutns to reflect what installer is doing: https://github.com/Azure/ARO-RP/pull/1730.
We need to merge https://github.com/Azure/ARO-RP/pull/1730 after this PR.

/azp run e2e


Add install instructions for pip

I noticed these install instructions were missing. This makes it much easier to install the package:
pip install sklearn-contrib-py-earth

This has been merged into v0.2dev.


Handle default sounds for DragListener and KeyboardDragListener in scenery

Over in https://github.com/phetsims/graphing-lines/issues/137#issuecomment-1861693224, @amanda-phet and I discovered that DragListener and KeyboardDragListener apparently have an (unofficial?) default design. tambo has sounds to be used for "grab" and "release" interactions.
While it's a default sound design, it's not supported in common code. Sims must implement it, using some variation of this code:
import grab_mp3 from '../../../../tambo/sounds/grab_mp3.js';
import release_mp3 from '../../../../tambo/sounds/release_mp3.js';
...

// Create sound clips.
const dragClipOptions = {
  initialOutputLevel: ... // a value between 0 and 1
};
const grabClip = new SoundClip( grab_mp3, dragClipOptions );
const releaseClip = new SoundClip( release_mp3, dragClipOptions );

// Add the sound clips to the soundManager.
soundManager.addSoundGenerator( grabClip );
soundManager.addSoundGenerator( releaseClip );

// Wire the sounds up to DragListener interactions.
... new DragListener( {

   start: () => {
     grabClip.play();
     ...
   },
   ...
   end: () => {
     releaseClip.play();
     ...
   }
} );

// Wire the sounds up to KeyboardDragListener interactions.
... new KeyboardDragListener( {

   start: () => {
     grabClip.play();
     ...
   },
   ...
   end: () => {
     releaseClip.play();
     ...
   }
} );

There are also variations of the above code that use press: () => grabClip.play() and release: () => releaseClip.play().
This duplication is very undesirable. It's unnecessary work.  It results in inconsistent implementation and inconsistent behavior (e.g output levels are all over the place). It's also easy to omit, if the developer and designer are not aware of this pattern (as I wasn't until a couple of hours ago.)
Let's investigate moving the default sound design (and the above code) into scenery, with options to specify an alternative sound design.

@amanda-phet @jbphet Do you have anything to add here design-wise?

I have two comments/suggestions:

Default sound features have been added to a number of common code components over the last couple of years, so there should be a number of examples to follow.  @pixelzoom was recently involved in fixing some problems with sound in ComboBox.  I can't say off the top of my head which would be the best examples to follow, but searching in sun and scenery-phet for soundPlayer would help to locate several.  I'd advise not using the buttons, since the complex inheritance hierarchy used there makes it a bit more complicated than most other examples.
I've had it in the back of my head for a while now that the terms "sound player" and "sound generator" have evolved quite a bit since they first entered the PhET lexicon and their usage is probably not perfectly consistent in the code and documentation.  Don't let that throw you and, if you run into code or docs where you think this could be improved, please let me know I'll set up an issue to work on improving it.

Also, I'd be happy to collaborate on this if it would be helpful.

Design-wise, I'm in favor of using a default sound design for DragListener, and vote for the current grab and release sounds that are being copied into multiple sims.

Now that this has been assigned back to me, I'm not sure how to proceed.   I guess the process is to leave it unassigned (which seems wrong) and add this to the Developer Meeting agenda.

@jonathanolson, can you comment on how you feel about adding a dependency on tambo in scenery?

We met on jan-08. Meeting notes:
JB: If we proceed on this, scenery would need to depend on SoundClip and the mp3s. It's something we've tried to avoid but let's hear what JO has to say. Maybe tweak the way we create DragListeners?
JO: No objections to including Tambo as a library, although it would be extra work on the start-up. However, DragListener is not supposed to be "Phet's Drag Listener" but a general tool that any other project could use.
JB: It'd be good to have a "SoundEnabledDragListener" that lives outside scenery. (JO +1)
AV: Where would that component live? Opening threads for each mentioned repo:

AV: scenery-phet? JO: scenery-phet is a level up from sun, so sun wouldn't be able to use the sonified DragListener.
JB: tambo? It makes sense to have this component a level up.
MS: sun? JO: I expect Sun to already rely on tambo. Potentially a good place for this. Do we know the filesize of the sounds we want to include? JB: ~3kb.

JO: After looking at TSoundPlayer, I'm leaning on adding an equivalent type into scenery and not depend on Tambo. (It's just an object that has a play() and stop() methods). However, we'd still need Tambo for the default values.
JO: Alternatively, we could check for default sounds on the loading state.
JO: Do we want this also for PressListeners? Answer: No.
JO: I think a subtype of DragListener in Sun or scenery-phet with the defaults should be good. (JB +1, AV +1)
AV: I can get behind this! What about the name?
MS: This pattern is mostly used in drag N drop scenarios. GrabDragListener? We're making a poll.

Was there conversation about converting most/all old and new usages to this new, phet-specific drag listener? If the motivation of this issue was, "I always forget to add UI sound to my draggable because I need to do it manually", isn't this the same problem shifted because you have to remember to use the new drag listener? Unless guarded by strong precedent or a lint rule I will most likely continue to accidentally use DragListener until this bites me one too many times.

It seems like the motivation in the issue is based more on, "PhET's specific dragging implementation", so I wouldn't be surprised if we pack more sim-specific customization in this new class in the future. I would recommend a more general name than something with "Sound" in the class name.

@zepumph it was mentioned that we're not interested in replacing all usages of DragListener, only the ones which use the above pattern.

Began working on this, but got blocked by a number of things, listing them here and tagging as help-wanted:

Tried but got stuck to merge the default start functions with the ones that come in providedOptions... It randomly says start() needs arguments, but when declaring the function in DragListenerOptions, it doesn't ask for it.
Somewhere in Kepler's Laws we use associatedViewNode on the soundGenerator, not really sure why or if we should consider it for this implementation.
There are multiple edge cases of this pattern, similar enough to require investigation but different enough not to allow our RichDragListener to be even tried.

In the end, I'm not even sure if pushing through with this would be even worth it, as the instances of 1:1 repeated code are minor (less than 3), whereas many of them differ sufficiently to justify the repeated pattern, but open for dicsussion.

While working on https://github.com/phetsims/area-model-multiplication/issues/9, I was surprised to see that the shared sound player for grabbing is using grab2_mp3, but RichDragListener uses grab_mp3. Why the discrepancy? I think we should probably be consistent. @jbphet can you speak to if these two grab sounds should be the same?

These have been around for a few years and I don't recall their origin stories at this point.  The GitHub history isn't that helpful either.  So I can't directly answer the question of "why the discrepancy", but I just listened to both and I think grab2 sounds better.  I would recommend that we use grab2 everywhere and delete grab.  Feel free to double check that with @Ashton-Morris if you think it is necessary.
If you'd like me to do the consolidation, let me know and I will.

Over in https://github.com/phetsims/area-model-multiplication/issues/9 I ran into a bug trying to use RichDragListener because it doesn't yet have the code that @AgustinVallejo and I worked on to overwrite the start/end callbacks when they are provided. I thought there may be a patch to continue on, but I don't see one above so I'll see what I can do.
Working on this now.

Ok. I made enough commits to proceed with https://github.com/phetsims/area-model-multiplication/issues/9, but I know that much of what @AgustinVallejo and I want to get done has to do with other usages which I didn't touch. @AgustinVallejo I'll go ahead and see if the above commits unblocked you enough to keep going. I didn't include the soundGeneratorOptions that we were working on last time, but I think we found a good path forward for that. Please review my changes and let me know if you run into trouble.

I'm having problems with this API in FEL.
(1) The doc says:

RichDragListener extends DragListener to integrate PhET-specific designed features that should be broadly
applied to DragListener instances in phetsims. This includes the grab and release sound clips.

If additional PhET-specific features are indeed added to these classes, and I want to substitute custom sounds for grab/release, but use the other PhET-specific features?  There's no way to do that.  I expected to see these options, with defaults:
grabSound: WrappedAudioBuffer;
releaseSound: WrappedAudioBuffer;

(2) Why are the APIs different for RichDragListener vs RichKeyboardDragListener?  For example, RichKeyboardDragListener  does not have option addGrabReleaseSounds.
The doc says:

RichDragListener extends DragListener to integrate PhET-specific designed features that should be broadly
applied to DragListener instances in phetsims. This includes the grab and release sound clips.

@AgustinVallejo let's discuss.

I'm having problems with this API in FEL. @AgustinVallejo let's discuss.
(1) Why was this integrated everywhere without a code review?
(2) The doc for RichDragListener says:

RichDragListener extends DragListener to integrate PhET-specific designed features that should be broadly
applied to DragListener instances in phetsims. This includes the grab and release sound clips.

The doc for RichKeyboardDragListener says:

RichKeyboardDragListener extends KeyboardDragListener to integrate the drag and drop sound clips.

So the motivations are different?
(3) If additional PhET-specific features are indeed added to RichDragListener (and hopefully RichKeyboardDragListener) and I want to substitute custom sounds for grab/release, but use the other PhET-specific features?  There's no way to do that.  I expected to see these options, with defaults:
grabSound: WrappedAudioBuffer;
releaseSound: WrappedAudioBuffer;

(4) Why are the APIs different for RichDragListener vs RichKeyboardDragListener?  For example, RichKeyboardDragListener  does not have option addGrabReleaseSounds.

(6) Another big problem...   If I provide options start or end to RichKeyboardDragListener, no sound will play. It blows away the code that wires the sounds into KeyboardDragListener, instead of wrapping the start and end functions as RichDragListener.

(7) Where is the test harness for this in sun?

(8) Entirely different code for RichDragListener vis RichKeyboardDragListener.  I'd expect the implementations to be identical, since the DragListener and KeyboardDragListener APIs for wiring in sound are identical. Why are the implementations different?

Hi @pixelzoom, sorry for the inconveniences.
I think the only problem was pushing changes to FEL. This feature is currently under development by @zepumph and I, and as you noted, there's much left for the implementation to be clean and ready for use.
We just don't have it in high priorities so progress is slow.
Will undo the push in FEL shortly

@AgustinVallejo and I paired on this today. RichDragListener vis RichKeyboardDragListener are now in much better shape, and I'm unblocked for FEL.
There are TODOs in the code for remaining work.  The most important one is that RichDragListener.ts and RichKeyboardDragListener.ts are now identifical implementations, which is unforuntate and undesirable.

One more thing... RichDragListener vis RichKeyboardDragListener currently live in sun, which is supposed to be generally UI components.  Since these documented purpose of these classes is "to integrate PhET-specific designed features", they should be moved to scenery-phet.

Problems with https://github.com/phetsims/sun/commit/c33c9b9267aa00bd07db9b02dcf7b5562f2624ba:

You changed RichDragListener, but did not change RichKeybordDragListener.  So less than 1 hour after I addressed the divergence in implementations, the divergence has been re-introduced.
You left isDisposable: false in the options, so it will presumably fail when you call dispose.

I fixed these problems in https://github.com/phetsims/sun/commit/55f1190c795a3962c66558e5bad3d1d0ae84d95a.  I also fixed a major problem in RichDragListener, where the clips were wired into start and end after calling super( options ).
@jonathanolson please review.

Looks good to me.

@AgustinVallejo is leading further work on this, so unassigning myself. Let me know if you'd like feedback or assistance.

TODOs after talking with @zepumph

[ ] Move this to scenery-phet with perennial/bin/copy-history-to-different-repo.sh
[ ] Create test harnesses

Also, we're not going to merge the implementation of the two RichDragListeners since DragListener and KeyboardDragListener are by nature really different and that's a bigger problem, which we're not solving in this issue.

I'm getting worried about how these classes are proliferating, and the fact that I've now needed to add them to multiple sims.  At the very least, the code should be moved from sun to scenery-phet.   Adding this to the developer meeting agenda.

Hello, and we are in agreement here. We have not been communicating well in this issue at all. I feel this issue is on hold at the moment. @jessegreenberg has been getting more time allocated to him about alt input issues, and https://github.com/phetsims/scenery/issues/1614 is on his list for this iteration. I'd be interested in seeing if that would change our approach for this issue, since we would likely only have a single instance of this that handled keyboard and mouse/touch. Perhaps let's hold off on discussion unless there is something specific to discuss.

Discussed during dev meeting today. It would be good to finish this up as one step and then having the combining step as a separate task. @AgustinVallejo and I will take it on! Note that the API likely doesn't support all current usages of grab/release sounds, so if you are using this for non-simple cases, you may need to talk with us.

TODO:

[ ] review all items in https://github.com/phetsims/scenery/issues/1592#issuecomment-1954240297
[ ] Move to scenery phet (https://github.com/phetsims/scenery/issues/1592#issuecomment-1958007386)
[ ] Test in demos (https://github.com/phetsims/scenery/issues/1592#issuecomment-1958007386)
[ ] Code review
[ ] find rest of usages to convert (perhaps just a confirm).

Looking into other usages of grab/release playing:

BASE/BalloonNode.js: Not a good candidate because drag/keyboard-drag share a release sound, and grab happens on GrabDragInteraction.onGrab.


Checkbox shows focus when inner element has focus

Reproduction
https://stackblitz.com/edit/angular-rknbpc
Steps to reproduce:

Click before the checkbox.
Tab and see both the checkbox and the button showing focus.

Expected Behavior
The checkbox and the button are mutually exclusive in showing keyboard focus.
Actual Behavior
Whenever the inner button has focus so does the checkbox. This is always problematic but more noticeable when the checkbox is disabled since focus goes directly to the button.

There should be ways around this, but I'm not sure whether we should fix it since putting a button inside a checkbox isn't a supported case.

Yeah, this isn't something we will address; a checkbox label officially only supports phrasing content, not interactive elements.


feat: added nvidia runtime if there's gpu detected

Purpose of this PR
Propose from this PR is to enable Nvidia Runtime if pod have GPU capabilites
Proposed changes:

Detect for any specific gpu is enabled, then runtimeClassName with change into Nvidia

Change Category
Indicate the type of change by marking the applicable boxes:

[ ] Bugfix (non-breaking change which fixes an issue)
[X] Feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that could affect existing functionality)
[ ] Documentation update

Checklist
Before submitting your PR, please review the following:

[X] I have conducted a self-review of my own code.
[ ] I have updated documentation accordingly.
[ ] I have added tests that prove my changes are effective or that my feature works.
[ ] Existing unit tests pass locally with my changes.

@reski-rukmantiyo Thanks for the contribution. However, I do not think it will work because the RuntimeClassName is only added to the SparkApplication CR, not to the Spark pods.


Print dangling comments in blocks

I'm still thinking through the best way to handle comments. For now, I'm going to fix a few smaller bugs first so I can get a better understanding of all the edge cases. This one fixes the empty block problem.
Once I see look at more use cases and how the AST is structured I'll see if there's a better way to handle comments generally.

Looks good to me!


gitter link does not work

Clicking the gitter link in the readme does not connect correctly

I'm actually going to remove the gitter badge. If you'd like to chat about this cookbook come over to the Chef Community Slack.


Show writing toggle button

When launched, the drawing is started by default. No need to wait for the first stroke.

Use onscreen button to toggle (on/off) pen drawing feature.

When user wants to exit the RapidDraw service, he could just click on the notification item on system panel.

use app icon for notification

fix the issue that button will also be moved when trying to toggle the feature

looks like not so compatible with original feature...
it won't update screen below unless really exiting the drawing mode.
May need more finetuning

This was in my very first POC.

it won't update screen below unless really exiting the drawing mode.

Indeed, this was my result as well. This is the reason why I decided to not to go with it.


Projects not showing in mobile site

First off, thanks a lot for creating a great theme! However, when accessing my site using a mobile device, only the first project in my projects.json appears. I have no idea why this happens as all projects appear when the site is accessed on the computer.

Hey @alexjadkins1 ! What type of device are you using? On mobile, the projects are displayed in a horizontal slider. It could be that your screen is too narrow so that the second project does not fit into the viewport.
This is how it should look like:

That was exactly it, thank you.


QObject::connect warning during calibration

When I start a calibration I receive the following warning:
WARNING: QObject::connect: Cannot queue arguments of type 'QTextBlock'
(Make sure 'QTextBlock' is registered using qRegisterMetaType().)
11:01:34 WARNING QObject::connect: Cannot queue arguments of type 'QTextBlock'
(Make sure 'QTextBlock' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QTextCursor'
(Make sure 'QTextCursor' is registered using qRegisterMetaType().)

I've traced this warning to _disable_buttons in main_widget.py, but I'm not sure how to fix it.
@ziw-liu would you mind taking a quick look? It doesn't seem to affect functionality, but it clutters up the terminal...suppressing would be fine.

It seems to be occurring when the CalibrationWorker calls logging.info() for the first time. This is somewhat a common issue for Qt when a worker tries to access something on the other thread. In our case these maybe a log message generated on the CalibrationWorker thread and the main widget thread that handles log display.

Also I can't fully appreciate having duplicate logging messages at different levels, such as:
logging.info('Calculating Black Level ...')
logging.debug('Calculating Black Level ...')

I would guess this was a compromise made to display only a certain level of logs in the GUI.

Aha! I was very confused about how stepping through _disable_buttons was causing this. You're totally right that threading steered me in the wrong direction.
I agree that logging could be cleaner. My impression of logging's behavior is that INFO is a higher level than DEBUG, so logging.info should be sufficient, right? See screenshot from here https://docs.python.org/3/library/logging.html

I agree that logging could be cleaner. My impression of logging's behavior is that INFO is a higher level than DEBUG, so logging.info should be sufficient, right?

That's what I thought. But I also suspect that we need to look at how the log text block in GUI works before removing duplicates.

It seems that if we do want to log what's happening in the workers, the way to go is to emit a pyqtSignal to a pyqtSlot in the 'main' thread as done with other inter-thread communications. Since a large portion of the workers involved are acquisition workers that will be deprecated, I am adding this to our 1.0.0 milestones.

I agree that logging could be cleaner.

Do you think this deserves a separate issue?

Yep I agree. The inter-thread communication issue can stay in this issue for 1.0.0, and logging can be in a different 1.0.0 issue.
Thanks Ziwen!

the way to go is to emit a pyqtSignal to a pyqtSlot in the 'main' thread

Another way (probably easier) is to use napari's notification system as we did with napari.utils.notifications.show_warning in other places.

I'm not sure I completely understand. Do you think we can use napari's notification system for all of our signal passing? Will that work for the progress bars and "stop" buttons?

Do you think we can use napari's notification system for all of our signal passing?

No, just for the notification/log info so we can take advantage of the GUI components they already made, and also keep them consistent. For custom message passing I think Signal/Slot is still the way to go (progress bars are already implemented as such).


feat: rust-same-file SRC

Simple crate for determining whether two file paths point to the same file
Log: rust-same-file SRC would be added.
Issue:
https://github.com/deepin-community/sig-deepin-sysdev-team/issues/389

/lgtm


Component: Card & CardLink - Card is not stretched to full screen on Mobile

Detailed description
Issue :- Its a Storybook issue - Card & CardLink - Card is not stretched to full screen on Mobile as per the specs.
Additional information

@guilhermelMoraes didn't you already work on this?

@annawen1 yeah, this may be a duplicate of the #2609. It looks just fine right now:


Inserting a model with several relationships into db not being observed correctly

Hello,
I have a problem when inserting a model containing several relationships (OneToOne, OneToMany) into the database. First, the message "I/art: Rejecting re-init on previously-failed class java.lang.Class<io.requery.query.SuppliedScalar$1>" is displayed.
On several occasions, mostly when inserting first such item into database, the insertion is not being observed correctly (by that I mean neither onCompleted/onError nor onNext is called in the subscriber subscribed to the insertion).
The model is an abstract class:
public abstract class AbstractMedication implements Parcelable, Persistable {

    @Key @Generated
    int id;

    String name;

    int type;

    int size;

    boolean used;

    int foodInstructions;

    int dosage;

    long startDate;

    long endDate;

    int timeType;

    @OneToOne
    @ForeignKey
    MedicationInterval medicationInterval;

    @OneToOne
    @ForeignKey
    MedicationDays medicationDays;

    @OneToMany(mappedBy = "medication", cascade = {CascadeAction.DELETE, CascadeAction.SAVE})
    List<MedicationTimes> medicationTimes;

    @OneToMany(mappedBy = "medication", cascade = {CascadeAction.DELETE, CascadeAction.SAVE})
    List<MedicationRefill> medicationRefills;

    @OneToMany(mappedBy = "medication", cascade = {CascadeAction.DELETE, CascadeAction.SAVE})
    List<HistoryEvent> historyEvents;
}

I have ensured that medicationTimes, medicationRefills and historyEvents all have a link back to the medication (but their not implemented as abstract classes, can the problem be there?).

You can ignore 'I/art: Rejecting re-init' it's a harmless informational message. So you have a subscriber on your insert (an rx.Single) and it's not called, but the the item is inserted into the database?

Yes, the weird part is that the subscriber usually works, but sometimes, with completely the same data, it does not. This only ever happened on the first insert, the others worked (so far, but I haven't done extensive testing yet).

Tested out subscribing on another thread and on the main thread, both proved to have the same issue.

Are they any messages in the log about 'no such table' or other errors? Possibly similar to #63 ?

I have looked through the logs but I haven't seen that. Also, I haven't mentioned the data is actually inserted, as it is in the database, just not observed.

How are you subscribing to the rx.Single with just the subscribe method or something else?

This is the code:
public void createNewMedication(Medication medication) {
        Log.d("NewMedicationPresenter", "createNewMedication");
        mSubscriptionMedication = mDataManager.newMedication(medication)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(med -> createNewPendingEvent(med)
    }

I have tried having the new pending event in onCompleted, but that didn't work either. Actually trying to log all three subscriber methods haven't worked (neither log got shown).

And newMedication  just does an insert? Do you ever unsubscribe mSubscriptionMedication? that would cause it to not get triggered potentially.

Here is the code:
public Observable<Medication> newMedication(Medication medication) {
        return mDatabaseHelper.newMedication(medication);
    }

public Observable<Medication> newMedication(Medication medication) {
        return mDb.insert(medication).toObservable();
    }

But where would I unsubscribe? I have to react on the insert somehow, the only place I can do that is in the subscriber, which doesn't get called in this instance. It doesn't make sense that an unsubscribe would do this, as it works most of the time.

I mean't do you ever call unsubscribe on your mSubscriptionMedication such as onStop/onPause. The only cases you would not get the subscribe event are a) if you unsubscribe or b) there is an error and onError will be called.

Yes, of course, I call unsubscribe on onDestroy (I think). That is the weird part, no method gets called, as I have a log in all three subscriber methods. But only on the first insert.

Sure, glad you found the issue


feat(DIA-882): add explore by categories to the home view

This PR resolves DIA-882
Description
Add the Explore By Categories to the home view
iPhone
https://github.com/user-attachments/assets/428264a2-4b79-4edd-82e3-106bd8b98430
iPad
https://github.com/user-attachments/assets/568609bd-24f4-4289-af2e-d8eab964c37b
PR Checklist

[x] I have tested my changes on iOS and Android.
[x] I hid my changes behind a feature flag, or they don't need one.
[x] I have included screenshots or videos, or I have not changed the UI.
[x] I have added tests, or my changes don't require any.
[x] I added an app state migration, or my changes do not require one.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

feat: add explore by section in the homeview - araujobarret

iOS user-facing changes

Android user-facing changes

Dev changes

Need help with something? Have a look at our docs, or get in touch with us.

This PR contains the following changes:

Cross-platform user-facing changes (feat: add explore by section in the homeview - araujobarret)

  Generated by :no_entry_sign: dangerJS against 933f6501f1e8f00ea724c0b649afd5828bf419ff

I've addressed all the requested changes, need just a 👍 in order to merge it.


How can I check if pop will close the app?

I added a callback to manage when pop action is pressed and there's only one page on stack to not close app or show a prevent dialog.
https://github.com/m-azyoksul/bottom_nav_layout/pull/17


[BEAM-4374] Short IDs for the Python SDK

Post-Commit Tests Status (on master branch)

Lang
SDK
Apex
Dataflow
Flink
Gearpump
Samza
Spark

Go

---
---

---
---

Java

Python

---

---
---

XLang
---
---
---

---
---

Pre-Commit Tests Status (on master branch)

---
Java
Python
Go
Website

Non-portable

Portable
---

---
---

See .test-infra/jenkins/README for trigger phrase, status and link of all Jenkins jobs.

R: @lukecwik does this look correct?


Develop

Coverage remained the same at 100.0% when pulling 4ecf41313199c613bcc1b3af91f1d8551ecc1c35 on develop into 9e5339bdbed1b06905244cfb7608ed2f50ebe9c2 on master.


feat: update improvements

This PR creates a bit more manual update process. We now notify the user that there is an update available and that IPFS Desktop is going to download the new version in the background. In the end, they get a new notification telling to click on it to update.
It's a bit more manual but it helps us (and the users) get a better understanding of what's happening.

As per a chat with @olizilla yesterday, we decided to only show one notification: when the download is finished.


[10.x] Provide flexibility on when model objects should prevent lazy loading

What?
This allows for specifying what enables the preventLazyLoading flag on a Model instance when hydrated. The work of qualifying if a hydrated model object should prevent lazy loading is moved from Eloquent Builder to the Model class itself. Projects always have their own Model child classes, but it's much more rare and cumbersome to override the Builder class. It provides a handy API for setting this globally, but could be overridden by classes individually.
This is a non-breaking change.
Existing Behavior
For this example, consider we have a User model that morphsMany tokens (like Sanctum).
Model::preventLazyLoading();

User::create(['name' => 'Thomas Erdelyi'])->createToken('api');

$tommy = User::get()[0];
$tommy->tokens; // ✅ a collection of tokens is returned

// now let's add another user
User::create()->createToken('api');

$tommy = User::get()[0];
$tommy->tokens; // ❌ LazyLoadingViolationException is raised

This is fine for most applications. But what if you want to get REALLY strict rules that developers should be explicit about what relationships need to be loaded? You're not covered by the current implementation and you may not even realize it.
New behavior
/**
 * We specify that if you fetch ANY model from the database, regardless if it was fetched
 * singly or as part of a broader query, it requires the relation is explicitly loaded.
 */
Model::setModelPreventsLazyLoadingCallback(function ($items, $model) {
    return $model::preventsLazyLoading();
});
$tommy = User::find(1);
$tommy->tokens; // ❌ LazyLoadingViolationException is raised

$tommy->loadMissing('tokens')->tokens; // ✅ a collection of tokens is returned

Background
Using Model::preventLazyLoading() allows us to avoid n+1 problems. This is great!  However, there's a strange behavior with how this works... Take a look at the example above in existing-behavior.
Why is the LazyLoadingViolationException raised the second time, but not the first? Because that flag is only set to true when the model is fetched in a group of 2 or more.
On our development team, this behavior was considered unintuitive. Not to mention that without digging into the internals of how Model::preventLazyLoading() works, you might not know to write your test suite in such a way that multiple models need created just to make sure there isn't any accidental lazy loading.
Development

Implementation Choices
Model@setModelPreventsLazyLoading($items, $model)
By allowing this to receive both the $items and $model as parameters (rather than just the count of items), we allow for userland to handle each case distinctly.
Model@setModelPreventsLazyLoadingCallback(?callable $callback)
$callback should have a signature like:
function (\Countable|array $items, Model $model): bool {}

You can access the current state of $model::preventsLazyLoading() here. For the case I'm describing, where we want the stricter rules, it's sufficient to set
Model::setModelPreventsLazyLoadingCallback(fn($items, $model) => $model::preventsLazyLoading());

If we decide we want to allow lazy loading in production, but disable it in development/staging environments, we'll run into no issues with the docs suggestion of using Model::preventLazyLoading(! $this->app->isProduction());.

Future development considerations
class Model // ...
{
    public static function requireEagerLoading()
    {
        Model::setModelPreventsLazyLoadingCallback(fn($items, $model) => $model::preventsLazyLoading());
    }
}

See also

https://github.com/laravel/framework/pull/37503 (this the PR that relaxed the restriction)
https://github.com/laravel/framework/pull/44769
https://github.com/laravel/framework/pull/44761/
https://github.com/laravel/framework/discussions/41268
https://github.com/laravel/framework/issues/42285
https://github.com/laravel/docs/pull/8912
https://github.com/laravel/docs/pull/8913

Why is the current behaviour counter-intuitive?

When you have a collection of 2 models and you try to load a relation for one of them, it is a lazy loading violation as expected.

1 query for the collection query, plus one query per model (so n+1 = 2+1 = 3 queries)

If your collection only consists of 1 model, n=1 so there never is an n+1 problem since n is minimal.

Why is the current behaviour counter-intuitive?

When you have a collection of 2 models and you try to load a relation for one of them, it is a lazy loading violation as expected.

1 query for the collection query, plus one query per model (so n+1 = 2+1 = 3 queries)

If your collection only consists of 1 model, n=1 so there never is an n+1 problem since n is minimal.

The way I read preventLazyLoading is that no there is absolutely no lazy loading; all relations should be accessible only through explicit calls to Model@setRelation(), Collection@load(), Collection@loadMissing(), Builder@with(), etc.  I was hoping that by enforcing this on a project level, it would require developers to be explicit about the relationships they need.  But it doesn't exactly do that.  What it's currently designed to do, as you pointed out, is handle the biggest pain points of N+1 issues. I think for a lot of projects, that's probably more than enough.
And what I'm proposing in no way affects that. But for large-scale applications, I think allowing one more level of assurance is even better.
Also, assuming you're writing a test suite for application (which we all do for every project, right? 😆), you have to deeply understand the internals of Model::preventLazyLoading() to understand why this test passes in the first case
User::factory()->create()->createToken('api');
$users = User::get();
$this->assertCount(1, $users[0]->tokens); // ✅  returns a collection of tokens

User::factory()->create()->createToken('api');

$users = User::get();
$this->assertCount(1, $users[0]->tokens); // ❌ LazyLoadingViolationException is raised

While that's a bit of an arbitrary example, once you realize how this actually works, it feels necessary that EVERY test builds out multiple instances of the child relationships to prove that you are testing against LazyLoadingViolation.
I also think it's beneficial to move the logic that flips the preventLazyLoading bool on a model instance to a method of the Model class itself. It's easy enough to set up my project so all models extend from some custom BaseModel class.  When the logic for determining what should flip the preventsLazyLoading flag on an object instance lives in the Builder class, it's decidedly harder to do.

I think the property is misnamed since it doesnt prevent lazy loading but it prevents n+1 queries. I don't see any reason to have this work otherwise for n=1 since in that case the amount of queries is already as low as it can be. https://github.com/laravel/framework/pull/37503 specifically added that for this purpose.
The docs https://laravel.com/docs/master/eloquent-relationships#preventing-lazy-loading dont seem to describe n+1 at all but I think thats the main reason to use this feature (it's not that much of use to blatantly block all lazy-loading relations when the underlying reason is to optimize the amount of queries).

@bert-w thanks for linking to the original PR! 👍
I doubt it will make much of a difference to your take on this, but I modified the implementation considerably since you first saw it (including updating the PR details).
I think what the problem boils down to is that the functionality name is imprecise and the docs don't make it clear that it's only for n+1 queries. I think making it more flexible will make happy the people who want to make it stricter, while being totally transparent for people who were happy with the previous implementation.

I've had my fair share of issues with this inconsistency and I've seen others too. You really do need to understand how the default strict mode works, because you can easily fall into a false sense that everything works but you have only 1 entry, but as soon as a second entry is created it starts crashing. This includes tests, commands, cron, queue.
The whole strict mode in Laravel is, from my perspective, poorly implemented targeting convenience over actual strictness. Like the attribute getters and isset situation where you can do isset($model['getterValue']) and it will return true, but once you try accessing $model['getterValue'] it will crash because some other used attribute does not exists. This is a reason why we completely replaced the Laravel strict mode with out own where you have to respect PHP quirks and use isset($model->getterValue), not the array access because in PHP different magic methods are called. This did lead to having to extend some relations to fix null id/foreign key accessors, but in the end it was worth it, at least for us. Also, we never allow single model lazy loading.
We have strict mode turned on at all times, even in production and I can't count how many times it caught bugs before they appeared, some minor that could've slipped past without problems when it returns null on missing attribute, others not so much where it could've lead to some major data inconsistencies or even security. A crash in prod is easier to deal with than broken data.

This is a reason why we completely replaced the Laravel strict mode with out own where you have to respect PHP quirks and use isset($model->getterValue), not the array access because in PHP different magic methods are called. This did lead to having to extend some relations to fix null id/foreign key accessors, but in the end it was worth it, at least for us. Also, we never allow single model lazy loading.

Can you expand a bit more on how you implemented that?

It basically involves a lot of method overrides like __isset does not call offsetExists but implements the logic manually to avoid exceptions, then offsetExists uses the proper checks for attribute or relation exists, no matter if it's null or not (which by default it will say false even if the attribute exists but is null), offsetGet always throws if the attribute or relation is not present, no matter if you use isset($model['attr']) or not which is the quirk I mentioned. We do not use mutator attributes for something that does not exist, we write getters for it to avoid mixing them as part of the model, we're explicitly checking if model has attribute when it's optional.  We still allow isset($model->mutatedAttr) to throw an exception if an attribute was accessed without explicitly checking if it's optional.
We also removed the checks for lazy loading, which is now handled by the offsetGet or __get and will throw if missing no matter what etc.. There is an exception that on models that do not exist we allow accessing relations and set them as default empty value without executing a query, this avoids some annoyances on creation forms.
It's harder to differentiate the changes now as the model has been through many iterations (it's probably 2 years old now) as we don't even use $fillable or $guarded and have more of a model schema with types, default values and such instead of $casts, additionally in some tables we use computed columns (readonly) and they cannot be sent to database on update/insert and so on which required even more tweaks and changes.
Probably many would call this "doing it wrong" or such, but overall we still have things we would like to change, as in the schema, but so far we're happier than with the default model approach.


Package.swift: adds dynamic library

Description of the pull request
...
Why is the change necessary?
...

@AndrewSB Can you add some details to the description regarding the purpose of this PR and the issues it resolves for you and/or your team?

hey! this is a workaround for the issue described here https://forums.swift.org/t/swift-packages-in-multiple-targets-results-in-this-will-result-in-duplication-of-library-code-errors/34892

@AndrewSB Our CI pipeline is currently failing due to an issue I've reported to Carthage... In the meantime, I'm curious if you've tried the Xcode 12.5 beta - discussion in that link you posted suggests there may be a fix for this issue that doesn't require a workaround in Package.swift.

I actually just downloaded it to try! I'll report back to see if I can use the non-patched pusher once I get around to it

@AndrewSB Apologies for the delay in follow-up with this. It seems the CI problems have been resolved now, so that's good! However, I was wondering if you had any success at your end when using Xcode 12.5. I.e. were you able to build using the latest, unmodified v9.2.2 release of our SDK without an issue?

Xcode 12.5 doesn't require this, looks like it works as is!


Upgrade desmos to v6.2.0

Desmos will be upgraded to v6.2.0 at block https://www.mintscan.io/desmos/block/11312575
Estimated Time: Nov 27th 2023, 15:32:37
Proposal: https://www.mintscan.io/desmos/proposals/36

ghcr.io/akash-network/cosmos-omnibus:v0.4.2-rc2-desmos-v6.2.0


The dependent action "futuratrepadeira/changed-files" is no longer available

The readme.md says that the way to setup this action includes this section, which has a dependency on the action futuratrepadeira/changed-files:
            - name: Detecting files changed
              id: files
              uses<EMAIL_ADDRESS>              with:
                  repo-token: ${{ github.token }}
                  pattern: '^.*\.ts$'

But apparently the futuratrepadeira repo has gone missing.

Suggestions for an alternative? Or have I done something wrong?

I just have runned the action on one of our PR right now and I don't see any failure :

Here is our current workflow (note that we use version 3.3 of that dependency) :
name: 'check-ts'
on:
  pull_request:
    types: [ready_for_review]
    paths:
    - '**.ts'
jobs:
  ts:
    name: ⚙ Compile typescript files
    runs-on: ubuntu-latest
    steps:
      - name: ⬇ Checkout branch
        uses: actions/checkout@v3
      - name: ↔ Get diff lines
        id: diff
        uses<EMAIL_ADDRESS>        with:
          include: '["\\.ts$"]'
      - name: ↔ Print line numbers of changed lines
        run: echo Line numbers = ${{ toJSON(steps.diff.outputs.lineNumbers) }}
      - name: ↔ Detecting files changed
        id: files
        uses<EMAIL_ADDRESS>        with:
          repo-token: ${{ github.token }}
          pattern: '^.*\.ts$'
      - name: 📃 List files changed (you can remove this step, for monitoring only)
        run: |
          echo 'Files modified: ${{steps.files.outputs.files_updated}}'
          echo 'Files added: ${{steps.files.outputs.files_created}}'
          echo 'Files removed: ${{steps.files.outputs.files_deleted}}'
      - name: 🔧 Reconfigure git to use HTTP authentication
        run: >
          git config --global url."https://github.com/".insteadOf
<EMAIL_ADDRESS>      - name: ⚙ Check ts errors
        uses<EMAIL_ADDRESS>        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}
          ts-config-path: './tsconfig.check.json'
          use-check: true
          check-fail-mode: added
          files-changed: ${{steps.files.outputs.files_updated}}
          files-added: ${{steps.files.outputs.files_created}}
          files-deleted: ${{steps.files.outputs.files_deleted}}
          line-numbers: ${{steps.diff.outputs.lineNumbers}}
          output-behaviour: both

Hey even I got the error, better to rename the GH action to avoid confusion. #463 here is the PR regarding the same.

thx, I just merged your PR


Add kustomization sync

Adds a button to Sync a kustomization. Copied from the flux2 implementation.

@squaremo Consolidated the reconciliation stuff: https://github.com/fluxcd/webui/pull/8/commits/b65b8500722d1b5d31b00822285f5b8448622b2d

@squaremo Consolidated the reconciliation stuff: https://github.com/fluxcd/webui/pull/8/commits/b65b8500722d1b5d31b00822285f5b8448622b2d


[CT-1464] What should config UX feel like(think: setting and updating configs, terminal logs, defensive behaviors to prevent users causing unintended effects)?

Success Criteria

[x] Potential "gotcha" implementations based on the above(think: if we update this file here, we have to update 100 files downstream)
[x] pseudo-code snippets on initial approach for the above to make this functionality work

How does dbt do error handling when multiple files have bad configs?

--example sql file config

{{
  config(
    materialized = "table",
    constraints_enabled = true
  )
}}

select
  1 as id,
  'blue' as color,
  cast('2019-01-01' as date) as date_day

# schema.yml
version: 2

models:
  - name: constraints_example
    config:
      constraints_enabled: true
    columns:
      - name: id
        data_type: integer # required and errors if NOT all columns have defined data types
        description: I want to describe this one, but I don't want to list all the columns
        constraint: not null # optional for all adapters
        check: price > 0 # optional for all adapters, we keep this separate because constraints(built-in) are different from checks(custom)
      - name: color
        data_type: string
      - name: date_day
        data_type: date
        default_value: CURRENT_DATE()

# dbt_project.yml
models:
  +constraints_enabled: true # enforce all models have constraints typed
  dbt_artifacts:
    +docs:
      show: false
    +schema: dbt_artifacts_sung
    staging:
      +schema: dbt_artifacts_sung
  tpch:
    staging:
      database: '{{ env_var("DBT_DYNAMIC_DATABASE","analytics") }}'
      +materialized: view
      +docs:
        node_color: "#FB6962"

    marts:
      intermediate:
        +constraints_enabled: false # overrides the root level enforcement
        +docs:
          node_color: "#3AAAE0"
      core:
        +tags: "owner:sung"
        materialized: table
        +docs:
          node_color: "#F6AE3E"

How do we handle data type string being recompiled into varchar(4)?
We give responsibility to the dbt user to go with either approach because data types evolve with databases frequently. dbt shouldn't be prescriptive with data type compliance because the database itself will handle this.
We do some data type compliance with integer in the snowflake adapter: https://github.com/dbt-labs/dbt-snowflake/blob/main/dbt/adapters/snowflake/column.py

@jtcohen6 I'll wait for your feedback before I close out this issue and move this to "done" in the github project board.

Note: It's okay if there are unknown unknowns during implementation as the comments illustrate general UX and NOT firm implementation proposals

CREATE TABLE products (
    product_no integer,
    name text,
    price numeric CHECK (price > 0), --this is okay
    discounted_price numeric CHECK (discounted_price > 0), --this is okay
    CHECK (price > discounted_price) --this is OUT OF SCOPE because I want to keep check constraints 1:1 with columns. After the first release of this feature, if there's demand and problems out there, we can evolve this feature to include this functionality
);

CREATE TABLE products (
    product_no integer,
    name text,
    price numeric CHECK (price > 0), --this is okay
    discounted_price numeric CHECK (discounted_price > 0), --this is okay
    CHECK (price > discounted_price) --this is OUT OF SCOPE because I want to keep check constraints 1:1 with columns. After the first release of this feature, if there's demand and problems out there, we can evolve this feature to include this functionality
);

Love this UX. I think my only hesitation is in the default, which feels a lot closer to a business decision ("And if we don't have a date, we use the current date") than a constraint or check. In other words, it's kind of creating/filling data, which feels like it should happen in the model itself.

@ian-fahey-dbt Thanks for the feedback. I bias towards giving users the choice in either defining defaults in the model OR schema.yml because in practice I don't see many creating default logic in SQL unless it's a case when experience. But let me know what you're afraid would happen if we live in a default in schema.yml first world?

@ian-fahey-dbt Thanks for the feedback. I bias towards giving users the choice in either defining defaults in the model OR schema.yml because in practice I don't see many creating default logic in SQL unless it's a case when experience. But let me know what you're afraid would happen if we live in a default in schema.yml first world?

I think coalesce is another way users create defaults.
As an example, say a shipping system has a shipping_tax field, one of a number of line item fields related to the shipment (including package_cost, shipment_cost, etc) . That shipping_tax field is populated for some orders but not others, because some shipments don't get taxed. It comes out of the shipping system as a null.
If I define that it should default to $0 in the .yml file but define the total_cost_of_shipping as package_cost + shipment_cost + shipping_tax in the model, I am splitting up the SQL logic that communicates something to the next user.
If instead, I coalesce(shipping_tax,0) in the model, I'm seeing that the business has already decided what to do with a null shipping_tax right alongside the additional business decisions.
The best place to understand what a model's doing is in dbt docs (you have the SQL, field definitions, etc etc). The second best, to me, is the model itself. This could just be my feeling, but the .yml file is more of a config file for other functionality (docs, tests) to work better.
Fair's fair, can you walk me through an example where the .yml is the right place to do it?

@ian-fahey-dbt
You name a fair point on clashing defaults. I didn't think of that until you named the example where the SQL says null is the default and the schema.yml file says the default is 0. This also brings up a point that dbt docs would have to change to say which columns have defaults based on the schema file when actually the default in the SQL logic is the reality.
I honestly added in the default config because I wanted to just throw it in. After your explanation, I'm going to exclude this config for now because it's a genuine mental load adder for users already using SQL logic defaults.

Agreed on all counts @ian-fahey-dbt @sungchun12! I typed up some notes below, just as part of digesting the comments above and explaining this to myself — definitely let me know if anything here surprises you.
Table schema is:

Defined in yaml - possibly by a different person from the eventual model writer!
Validated at runtime: not during compile (a la "bad ref" / "bad macro call"), but as part of the materialization macro.

Similar to how tests work today.
To the extent possible, we should validate before a table is actually updated. (Some databases will support this easily; others less easily; others not at all for custom expressions. That's ok.)

I can imagine a future where "runtime" could also include "unit testing" :)

Table schema consists of:

column names
data types (database-specific for now
constraints / checks / tests to define expectations for column contents (e.g. whether the column can contain a null value, what acceptable values are)

Table schema does NOT contain any rules or logic on HOW to populate the contents of the table. All of that should be defined in a SQL select statement, or Python dataframe. At runtime, the results of that select statement / contents of that dataframe either:

Match the expected schema, pass all constraints, and populate the db table with exactly the same thing you'd see by select'ing / collect'ing. (So, no secret magic within the materialization that backfills nulls with defaults.)
Fail to match the expected schema / fail a constraint. The table is not recreated/updated; in all likelihood, this means the older version of the table remains in place, with acceptable (if stale) data.


Choose the extension for feature request.
🎆 New Extension Idea
📝 Provide a description of the new feature
Could you make or add some configuration that makes the lyrics of the song take the color of the icons and volume, playing bar, I hope it is understood
➕ Additional Information

In the screenshot you can see the white letter and if you could get the color of the icons (purple) in that case it would look nicer thanks

It's by design, text has to be readable everywhere, even if it's a picture background.


fix: Changed copy for Desktop -> macOS

Details

Changed the copy from Desktop to macOSso that the user knows the supported platform.

Fixed Issues

$ https://github.com/Expensify/App/issues/6921
Tests

Checked the updated copy in all platforms.

QA Steps

Open app
Go to settings > About > App download links
Check the desktop link label should be 'macOS'

Tested On

[x] Web
[x] Mobile Web
[x] Desktop
[x] iOS
[x] Android

Screenshots

Web

Mobile Web

Desktop

iOS

Android

:hand: This PR was not deployed to staging yet because QA is ongoing.


Is it possible to use offline sync in the browser with sql.js?

How would i go about configuring the sync context to use sql.js?
For those who don't know sql.js is sqlite compiled to js with emscripten.

Hi,
Sorry for late response.
No, this is an unsupported case for this SDK.
This mentioned in the README:

Offline Sync is only supported in Apache Cordova situations.

Best,
Ivan

IIRC, you can implement it. Look at the current sqlite implementation: https://github.com/Azure/azure-mobile-apps-js-client/blob/master/sdk/src/Platform/cordova/MobileServiceSqliteStore.js
I was about to start to do it but some other project came in.
This client is very easy to modify and alter to your needs.
Play around with it, its internals are very interesting, tho , great part of it should be rewritten with a different approach.

@aronmek Thanks for using Azure Mobile Apps. Please read the Readme section on this repo which talks about the future of Azure Mobile Apps. At this point, we are not adding new features in this product.
I'll close this issue for now, but feel free to ask us questions if you have any. Thanks!


How to reload the models in Chapter07?

Hi Maxim,
I would find really useful in Chapter07 something like 03_dqn_play.py in Chapter06.
I modified the RewardTracker in order to save the best model:
if self.best_mean_reward is None or self.best_mean_reward < mean_reward:
----torch.save(self.net.state_dict(), "best.dat")
----if self.best_mean_reward is not None:
--------print("Best mean reward updated %.3f -> %.3f, model saved" % (self.best_mean_reward, mean_reward))
--------self.best_mean_reward = mean_reward
and it seems to work. But I have problems to reload the net with the saved weights and to work with it...I tried with something as in the code attached...
09_dqn_play.py.txt
I have doubt it is right :-( Do you have perhaps already a piece of code at hand or could you give me a tip?
Thank you very much in advance!
Regards
Fabio

Hi Fabio!
In attachment you've sent, there is no code for loading the model from file, only comment about it.
In fact, load saved model in not complicated, you just need to do this:
net.load_state_dict(torch.load("best.dat", map_location=lambda storage, loc: storage))
Argument map_location is needed only if you've trained the model on GPU, but trying to load it without CUDA initialized. Otherwise, it could be omitted.

Hi Maxim
thank you! The rest of my approach is right? What a little baffles me is to
load at the begin 32 random obs to make the batch consistent with  what the
net waits
Regards
Fabio
Am Sa., 3. Nov. 2018 um 17:31 Uhr schrieb Max Lapan <
<EMAIL_ADDRESS>
Hi Fabio!
In attachment you've sent, there is no code for loading the model from
file, only comment about it.
In fact, load saved model in not complicated, you just need to do this:
net.load_state_dict(torch.load("best.dat", map_location=lambda storage,
loc: storage))
Argument map_location is needed only if you've trained the model on GPU,
but trying to load it without CUDA initialized. Otherwise, it could be
omitted.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/PacktPublishing/Deep-Reinforcement-Learning-Hands-On/issues/10#issuecomment-435601450,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYHzX61g2AA9z9t7jhjJIx0rotFXaEcEks5urcTSgaJpZM4YIgTc
.

Sorry, didn't got this from your first message. No, the approach is wrong, what you need is much simpler. In fact, you don't need observation buffer at all :).
To apply your network, you don't need to pass it the same batch of samples as you've used for training. First dimension of input value to the network could be of any size, for example, you can train network using batches of 64 samples and for every net application it will return you the output with 64 entries. But if you want to apply the network to different batch, say with 2 samples, you can just pass it the tensor with size=2 of the first dimension and it will return you the output of size 2.
So, if you have only one observation, just pass it to the network with batch=1, exactly this happens here (line 42): https://github.com/PacktPublishing/Deep-Reinforcement-Learning-Hands-On/blob/master/Chapter06/03_dqn_play.py#L42
We take our state (the array of 4x84x84) and convert it into tensor. But notice square brackets around the state variable. It automatically adds the extra dimension, so, resulting tensor is 1x4x84x84, so, our batch dimension is 1.
The output from the network will also have first dimension of 1, that's why on line 43 we need to access zeroth element of the output to obtain our q-values.

Hi Max,
Thank you very much! I'll follow your advice.
Regards
Fabio
Max Lapan<EMAIL_ADDRESS>schrieb am So. 4. Nov. 2018 um 15:18:

Sorry, didn't got this from your first message. No, the approach is wrong,
what you need is much simpler. In fact, you don't need observation buffer
at all :).
To apply your network, you don't need to pass it the same batch of samples
as you've used for training. First dimension of input value to the network
could be of any size, for example, you can train network using batches of
64 samples and for every net application it will return you the output with
64 entries. But if you want to apply the network to different batch, say
with 2 samples, you can just pass it the tensor with size=2 of the first
dimension and it will return you the output of size 2.
So, if you have only one observation, just pass it to the network with
batch=1, exactly this happens here (line 42):
https://github.com/PacktPublishing/Deep-Reinforcement-Learning-Hands-On/blob/master/Chapter06/03_dqn_play.py#L42
We take our state (the array of 4x84x84) and convert it into tensor. But
notice square brackets around the state variable. It automatically adds the
extra dimension, so, resulting tensor is 1x4x84x84, so, our batch dimension
is 1.
The output from the network will also have first dimension of 1, that's
why on line 43 we need to access zeroth element of the output to obtain our
q-values.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/PacktPublishing/Deep-Reinforcement-Learning-Hands-On/issues/10#issuecomment-435673470,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYHzX5RgAxe4lDj-Zh_qhojxJV5ZubS9ks5urvcvgaJpZM4YIgTc
.


Give users control over evaluation order

Users should have more control over evaluation order of groups (e.g. to define a fallback group as suggested in chrome web store review by Lucas Abido Figueiro and Piotr Skrzeczkowski). Current ordering is alphabetical.

This is possible in the just released Auto-Group Tabs v0.0.6.


build: use patched version of aws-sdk-ec2

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
alternative solution to replace #15368, without introducing feature flag.
The main motivation is to make the dependency aws-sdk-ec2 optional.
It is very rarely used in development, but contributes to more than half of the compile time.
Check https://github.com/risingwavelabs/rw-aws-sdk-ec2/commits/main/ to see what's changed.

Checklist

[ ] I have written necessary rustdoc comments
[ ] I have added necessary unit tests and integration tests
[ ] I have added test labels as necessary. See details.
[ ] I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features #7934).
[ ] My PR contains breaking changes. (If it deprecates some features, please create a tracking issue to remove them in the future).
[ ] All checks passed in ./risedev check (or alias, ./risedev c)
[ ] My PR changes performance-critical code. (Please run macro/micro-benchmarks and show the results.)

[ ] My PR contains critical fixes that are necessary to be merged into the latest release. (Please check out the details)

Documentation

[ ] My PR needs documentation updates. (Please use the Release note section below to summarize the impact on users)

Release note
If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.

this approach seems more adorable

But the reduction of overall compilation time seems not much (24 secs).

This might be because of the suboptimal build graph. Previously aws-sdk-ec2 is a major blocker, but after removing it, another blocker comes. Optimizing it can make it possible to further optimize in the future. (Maybe also help save energy...)


Update mute-microphone extension

Description
Feature (issue #8832, commit 198de72)

I have added a new preference in the Menu Bar command section to respond to the issue and have tried to keep the two options so that the user has a choice.
I have also added a background refresh interval in case Raycast is shutdown for some reason and an item to open the command settings from the menu bar icon (Settings...).

Refactor (issue #9750, commit 0875e3a)
If you agree, you can accept this refactoring to fix the main function of the extension or try to fix the swift code, I haven't touched that language enough to fix it.

Switched to AppleScript.

Screencast
https://github.com/raycast/extensions/assets/37552350/764be745-ab65-41c8-a557-19635cbcb889
Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

Thanks for your contribution 🔥
@quentin23soleil do you want to check this?

Pinging a last time @quentin23soleil 🙂

I'm happy with the changes 🙂

Awesome, thanks 🤗

The swift code sets the microphone volume to 0.0 but still could recognise the sound, with what I know of swift I have not been able to solve it, any problem will apply a revert and try to solve it.


i18n(fr): Update guides/i18n.mdx from #2444 and #2524

Description

i18n(fr): Update guides/i18n.mdx from https://github.com/withastro/starlight/pull/2444
i18n(fr): Update guides/i18n.mdx from https://github.com/withastro/starlight/pull/2524
i18n(fr): Update guides/i18n.mdx for getting same number of the original file lines

I'm participating to the Hacktoberfest 2024!

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

fr
guides/i18n.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


Consent Purposes Gets Deleted While User Exist

Description:
When we have configured User Self-Signup and created a consent purpose for SELFSIGNUP, the consent purpose is deletable even when an existing user has given the consent. This is not the expected behaviour. When there's a user existing who has given the consent, we should not be able to delete the Consent Purpose as an error should be prompted, as shown below. This should be the expected behaviour.

Steps to reproduce:
1). Configure self-registration for the dev portal in the management console, under
Identity Providers -> Resident -> Account Management Policies -> User Self Registration
2). Set Enable Self User Registration to true
3). Click on Manage Self-Sign-Up purposes in the same window and add a new purpose as shown below.

4). Then click on Finish and again Finish and then Update the configuration.
5). Once you have configured User Self Registration, go into devportal, click on the sign-in option, and click on Proceed to Self-Register and create a new user.
6). Once you have created a user using the self-registration process, go back to the management console, and under Consent Purposes -> List, you'll see the previously created consent purpose. If you click on the delete option and select Yes, consent will get deleted.
Affected Product Version:
WSO2AM-<IP_ADDRESS> - Latest (<IP_ADDRESS>)

Closing since all the fixes are merged.