by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Sep 18 10:11
    RolandPheasant closed #407
  • Sep 18 10:11
    RolandPheasant commented #407
  • Sep 18 01:02
    RolandPheasant edited as member
  • Sep 17 15:53
    RolandPheasant added as member
  • Sep 17 15:53
    RolandPheasant removed as member
  • Sep 17 00:53

    glennawatson on glennawatson-update-release-script

    (compare)

  • Sep 17 00:52

    glennawatson on main

    housekeeping: Add the release b… (compare)

  • Sep 17 00:52
    glennawatson closed #408
  • Sep 17 00:52
    glennawatson opened #408
  • Sep 17 00:51

    glennawatson on glennawatson-update-release-script

    Add only release if merge is tr… (compare)

  • Sep 17 00:49

    glennawatson on glennawatson-update-release-script

    housekeeping: Add the release b… (compare)

  • Sep 15 15:35
    dnm240 edited #407
  • Sep 15 15:34
    dnm240 labeled #407
  • Sep 15 15:34
    dnm240 opened #407
  • Sep 15 10:07

    glennawatson on TransformAsyncFix

    (compare)

  • Sep 15 10:07
    glennawatson closed #157
  • Sep 15 10:07

    glennawatson on main

    Fix deadlock in transform async… (compare)

  • Sep 15 10:07
    glennawatson closed #405
  • Sep 15 09:54
    codecov[bot] commented #405
  • Sep 15 09:48
    RolandPheasant synchronize #405
Gitter
@ReactiveGitter
[gdurand, Reactive, Inc.] I think the problem is related to the creation of 1 autorefresh per domain that will listen to all the domains already present. In the end I get n domain observing n domains
[glennawatson, Reactive, Inc.] I agree that’s also a issue, but don’t discount the IEnumerable vs single add
[gdurand, Reactive, Inc.] as I said I tested with the enumerable, with only 1 addorupdate, and there is no change (at least the Autorefresh problem hides it very well)
[gdurand, Reactive, Inc.] I'm not sure the AutoRefresh is optimized in relation to the number of AddOrUpdate (at least it's not what I observe)
[glennawatson, Reactive, Inc.] I’m guessing Roland can confirm, it will just cause one regeneration of items vs n of the for loop
[glennawatson, Reactive, Inc.] that’s what I seen
[glennawatson, Reactive, Inc.] but thats more if you add the items after generating the AutoRefresh()
Gitter
@ReactiveGitter
[gdurand, Reactive, Inc.] that's what I do: the Children observable is created in the constructor of a Domain, so it is indeed added to the main cache after the generation
Gitter
@ReactiveGitter
[roland, Reactive, Inc.] Where does project data come from and whether does domain data come from? Are they sources as 2 distinct data sources? And is the code taking the 2 sources and creating a one to many relationship?
[gdurand, Reactive, Inc.] There is only one source: IEnumerable<Domain> ProjectService.GetDomains(). And the cache should be updated from the returned value, once normally.
Gitter
@ReactiveGitter
[gdurand, Reactive, Inc.] I pushed more tests, where I compare AutoRefresh(propertyAccessor) and AutoRefreshOnObservable(one global observable that never emits) and, quite surprisingly, the latter is waaaay slower than the former, though AutoRefresh actually uses AutoRefreshOnObservable
[gdurand, Reactive, Inc.] and to answer your question more completely Project and the domains come from 2 sources
[roland, Reactive, Inc.] The reason for slowness is excessive amounts of change set notifications coupled with repeated auto refresh subscriptions (auto refresh are opt in for a reason). That was clear cut as soon as I saw the problem. What my questions are geared up to is to try and understand your data and your problem so I can suggest a simple solution - the always is with rx / dd / linq
[roland, Reactive, Inc.] ...any way I am working now and will sign back in later
Gitter
@ReactiveGitter
[gdurand, Reactive, Inc.] OK, I made it work quite simply: I do not use AutoRefreshOnObservable but I pass my global Observable of Parent changes as a parameter to Filter. All I wanted to do was actually reapply the filter, but I thought AutoRefresh did just that
[gdurand, Reactive, Inc.] I had to use a Filter overload that didn't quite suit my needs though: to pass a reapplyFilter I had to use the Filter with an observable predicateChanged. I would have preferred using the static filter
[gdurand, Reactive, Inc.] Also I think I found a bug on the Filter overload with only the reapplyFilter parameter: it call DynamicFilter with a null predicateChanged, which causes it to throw a ArgumentNullException
[gdurand, Reactive, Inc.] I will file an issue on github
Gitter
@ReactiveGitter

[unknown]
[RolandPheasant/DynamicData] Issue created by gdurand
RolandPheasant/DynamicData#128
Filter(reapplyFilter) calls the DynamicFilter constructor with a null predicateChanges, which causes it to throw an ArgumentNullException.

Also I don't understand the usage of this method: there is no filter specified.

Gitter
@ReactiveGitter
[unknown]
[RolandPheasant/DynamicData] Issue created by gdurand
RolandPheasant/DynamicData#129
Currently you cannot refresh a cache filtered with a static predicate.
An overload Filter(Func<TObject, bool> filter, IObservable<Unit> reapplyFilter) could be useful.
Gitter
@ReactiveGitter
[roland, Reactive, Inc.] @gdurand does 'ProjectService.GetDomains()' return all possible domains?
Gitter
@ReactiveGitter
[unknown]
[RolandPheasant/DynamicData] New comment by onliner10 on pull request #126: Use LinkedLists in IndexCalculator, optimise algorithm
I managed to fix algorithm to handle refreshes, therefore fixing failing test
Renato Marinho
@renatomarinho
This message was deleted
Logan Laughlin
@llaughlin
image.png
Hello everyone. I'm not sure what I might be doing wrong, but each time I try to add Dynamic Data to a Linqpad script, I get this error:
I've tried manually installing System.Reactive 3.1.1, but I get a similar error:
image.png
I've read that this is supposed to be solved in some versions of nuget/system.reactive/dynamicdata, sometimes with the instructions to change to "PackageReference" for .csproj files, but I'm using Linqpad, not .csproj. I'm more concerned that there any issues that explain workarounds for this, as DynamicData still has a dependency on System.Reactive 3.1.1
Jeremy Kolb
@kjeremy
is there a way to transform a property from a IObservableCache to a IObservableList? I want to do something like: (
IObservableList<string> myList = this.SensorCache.Connect()
                .DistinctValues(s => s.Group) // Find distinct values of "Group" property
                .Filter(group => !string.IsNullOrEmpty(group)) // Filter and sort
                .Sort(Comparer<string>.Default)
               .ToObservableList() // doesn't exist, closest I can find is Bind
Jeremy Kolb
@kjeremy
maybe the correct question is how to go from IObservable<IChangeSet<X, Y>> to IObservable<ChangeSet<Y>>
Jozef Hollý
@j2ghz
@kjeremy .RemoveKey()
IObservable<IChangeSet<TObject>> RemoveKey<TObject, TKey>(this IObservable<IChangeSet<TObject, TKey>> source)
Jeremy Kolb
@kjeremy
Thanks! Now I can remove a bunch of ReadOnlyObservableCollection
Jozef Hollý
@j2ghz

Is there a method that works like IEnumerable's SingleOrDefault? I am looking for IObservable<IChangeSet<T>>.SingleOrDefault<T> that would return IObservable<T>.

I have a SourceList<item>, and I need a IObservable<bool> that says whether a defined item is present in the collection. With LINQ I'd do .Contains(), but a reactive equivalent seems to be missing. I could use .Filter(), but then .SingleOrDefault equivalent is still needed. Am I missing something?

Jozef Hollý
@j2ghz
While I think this operator would be useful, I solved it when I realized (Left)Join can be used if it's a cache, not a list.
Roland Pheasant
@RolandPheasant
@/all for those who do not already know, the forum has moved to here https://reactiveui.net/slack. If you have problems getting access please DM your email address to me and I will send an invite.
vanessa jese
@vanessajese2_twitter
hello
Jonas Jermann
@jjermann
hi, given a SourceList, how do I get an observable property of e.g. list.FirstOrDefault(x => x.SomeCondition())?
Or alternatively is there some observable I can subscribe to that always changes when anything of the SourceList changes?
Usman Waheed
@Usman_Waheed_KH_twitter
connetionString.Close();
LiveCharts.Wpf.Axis ax = new LiveCharts.Wpf.Axis()
{
Title = "Period Name",
ShowLabels = true,
FontWeight = System.Windows.FontWeights.Bold,
                Foreground = new SolidColorBrush(Colors.Black),
                Labels = LabelsX,
            };
I am trying to print the List of years coming from database
but the problem is it always gives a difference of 2 year
2010 ---> 2012 on x axis
i don't know how can i set the labels
so it will not miss any year
Glenn
@glennawatson
@/all for those who do not already know, the forum has moved to here https://reactiveui.net/slack.
José Manuel Nieto
@SuperJMN
Thanks for the info!
(I'm already there)
Artur Malendowicz
@Immons
guys, how the hell can i force refilter on sourceCache? triggering reapply filter doesnt work...
aguahombre
@aguahombre

Should SourceList.Connect() pass an initial empty IChangeSet if the source list is empty?
It appears not to do this.
In most cases this causes no problems but when used with CombineLatest it causes the CombineLatest to wait for an initial change.

The example below outputs nothing if the list is empty but outputs a value as expected if it contains items.

SourceList<> sourcelist = new SourceList<>();
IObservable<bool> anotherObs = ...;

// some code that conditionally adds items to sourceList

sourceList.Connect()
    .QueryWhenChanged(x => someConditionalFunc(x))
    .CombineLatest(anotherObs, (a, b) => a || b)
    .Subscribe(x => Console.WriteLine(x));

To get around this problem I have to add .StartWith() after the QueryWhenChanged call, but the code would be simpler if Connect() always output an initial changeset.

aguahombre
@aguahombre
The logical Or method does not work as I would expect.
For example Or two caches: A,B with B,C would produce A,B,C, then removing B from set 1 should still produce a combine cache A,B,C as set 2 still contains B, but actually the combined cache produces A,C.
I assumed that the Or method would be analogous to a set operator.
aguahombre
@aguahombre
Forget that, I misinterpreted my debug info