Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Sep 12 08:37
    georgiuk closed #271
  • Sep 12 08:37
    georgiuk commented #271
  • Sep 12 08:34
    glennawatson commented #271
  • Sep 12 08:30
    georgiuk commented #271
  • Sep 12 08:22
    glennawatson commented #271
  • Sep 12 08:22
    glennawatson commented #271
  • Sep 12 08:21
    georgiuk commented #271
  • Sep 12 08:20
    georgiuk commented #271
  • Sep 12 08:04
    glennawatson commented #271
  • Sep 12 07:58
    georgiuk opened #271
  • Sep 11 08:48
    lock[bot] locked #230
  • Sep 08 07:48
    lock[bot] locked #177
  • Sep 08 07:48
    lock[bot] labeled #177
  • Sep 06 06:48
    lock[bot] locked #229
  • Sep 05 10:48
    lock[bot] locked #225
  • Sep 03 10:49
  • Sep 02 18:06
    RolandPheasant commented #268
  • Sep 01 10:08
    slimshader commented #12
Gitter
@ReactiveGitter

[glennawatson, Reactive, Inc.] in your example

for (int j = 0; j < nbChildren; j++)
                {
                    project.Domains.AddOrUpdate(new Domain(project, (i + 1) * nbChildren + j, parent));
                }

can become

project.Domains.AddOrUpdate(Enumerable.Range(0, nbChildren).Select(i => new Domain(project, (i + 1) * nbChildren + j, parent)));

Which makes 210 add notifications to 20

[glennawatson, Reactive, Inc.] not sure if that helps with your end domain issue since you may have simplified to demonstrate
Gitter
@ReactiveGitter
[roland, Reactive, Inc.] @gdurand can you give me permission to push straight to the example? Would make it very easy to collaborate
[roland, Reactive, Inc.] scrap that. I see you already have done so
Gitter
@ReactiveGitter
[gdurand, Reactive, Inc.] @glennawatson this loop is just used for the test. And anyway, if I add all the domains to a list and then AddOrUpdate this list, the time to process is still the same
[glennawatson, Reactive, Inc.] how so, each one of those generates a source change observable, while with the ienumerable version it causes a aggregated observable change etc
[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)
Gitter
@ReactiveGitter
[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()
[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.