[Points] Deselecting (and selecting too) a lot of points is very slow

🐛 Bug Report
Originally noticed here:
https://github.com/napari/napari/issues/6275#issuecomment-1939599691
If you make 1e6 points, selecting them all is a bit slow (with psygnal 0.10.2, with 0.9.5 it hangs the viewer) -- blocks the viewer for a few seconds.
Deselecting them blocks the viewer for >2 min (maybe as much as 5, it does complete).
💡 Steps to Reproduce
Use this script from #6275 to make a layer with 1e6 points:
import numpy as np
import napari

rng = np.random.default_rng(seed=0)
data = rng.random(size=(1_000_000, 2)) * 1000
viewer = napari.Viewer()
viewer.add_points(data)
napari.run()

Press a to select all points.
Deselect by clicking off to the side with the selection tool -- there doesn't seem to be a key bind for that.
💡 Expected Behavior
Selection taking a few seconds is ok, but could be better, since it does block.
Deselection I'd expect to be very fast, instant even, but maybe this is unrealistic. Still, 2-5 min is not good.
🌎 Environment
napari: 0.5.0a2.dev558+g62861b84
Platform: macOS-14.2.1-arm64-arm-64bit
System: MacOS 14.2.1
Python: 3.11.7 | packaged by conda-forge | (main, Dec 23 2023, 14:38:07) [Clang 16.0.6 ]
Qt: 6.6.1
PyQt6:
NumPy: 1.26.3
SciPy: 1.12.0
Dask: 2024.1.1
VisPy: 0.14.2
magicgui: 0.8.1
superqt: 0.6.1
in-n-out: 0.1.9
app-model: 0.2.4
npe2: 0.7.4
OpenGL:

GL version:  2.1 Metal - 88
MAX_TEXTURE_SIZE: 16384
GL_MAX_3D_TEXTURE_SIZE: 2048

Screens:

screen 1: resolution 2056x1329, scale 2.0
screen 2: resolution 1920x1200, scale 1.0

Settings path:

/Users/sobolp/Library/Application Support/napari/napari-dev_36963bf0846bfe99dcf4f566a2cc780b6a723afa/settings.yaml
Plugins:
napari: 0.5.0a2.dev533+gc6abeb5d (81 contributions)
napari-animation: 0.0.8.dev36+g921f872 (2 contributions)
napari-console: 0.0.9 (0 contributions)
napari-foobar: 0.0.1 (8 contributions)
napari-ome-zarr: 0.5.2 (2 contributions)
napari-svg: 0.1.10 (2 contributions)

💡 Additional Context
No response

Ooof.
I agree with you, this should be much much faster. 1m is not even that big a number. tbh I expect there is some low hanging fruit here.

NB: turns out a actually toggles selection of all pts! Need to update the description IMO.

With 0.5.1 and 1e6 points, selecting still takes a couple seconds, but deselection is instant now! 🎉
I think the behavior is quite acceptable so will close. 🎉


Cleanup snippets directory structure

Some snippets are under docs/src/snippets and some are under docs/src/snippets/userguide. All samples are used in the same way, so there's no reason for the distinction. This PR moves all snippets to thedocs/src/snippets directory.
My ultimate goal here is to provide a consistent directory structure. Initially, I had the idea to flatten the snippets directory, but that might be an overkill. The alternative is to use the following structure: docs/src/snippets/${snippet-category}/${concrete-snippet}. @big-guy @rieske WDYT?

Current state passes CI: https://builds.gradle.org/viewLog.html?buildId=33996315&tab=buildResultsDiv&buildTypeId=Gradle_Check_Stage_ReadyforMerge_Trigger&branch_Gradle_Check=donat%2Fflatten-snippets

To verify my changes, I've run userguideMultiPage with and without my changes and compared the content of the docs/build/working/usermanual/final directory. They are identical.

What I was wishing for when working with documentation together with snippets was a structure that would make it straightforward to map and navigate from a specific documentation page to a snippet used in that page.
Given a documentation page docs/foo/bar.adoc, its snippets living in snippets/foo/bar/.
I guess such a structure would break if/when we want to share the same snippet for multiple documentation pages.

That is indeed a good suggestion. I think this should be the default convention. I haven't seen a snippet that we referenced more than one time.


Migrate from XCTest to swift-testing

Codecov Report
Attention: 36 lines in your changes are missing coverage. Please review.

Comparison is base (9f6b02d) 5.55% compared to head (4b59bac) 0.64%.

:exclamation: Current head 4b59bac differs from pull request most recent head 4eaf066. Consider uploading reports for the commit 4eaf066 to get more accurate results

Files
Patch %
Lines

Sources/OpenGraph/Attribute/Attribute.swift
0.00%
30 Missing :warning:

Sources/OpenGraph/Attribute/OGAttribute.swift
0.00%
3 Missing :warning:

Sources/OpenGraph/Graph/OGGraph.swift
0.00%
3 Missing :warning:

Additional details and impacted files
@@           Coverage Diff            @@
##            main     #25      +/-   ##
========================================
- Coverage   5.55%   0.64%   -4.92%
========================================
  Files         12      13       +1
  Lines        126     156      +30
========================================
- Hits           7       1       -6
- Misses       119     155      +36

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


fix(gatewayServicesForm): not use computed in gateway service form [khcp-10152]

Summary
https://konghq.atlassian.net/browse/KHCP-10152
Fixes bug GatewayServiceForm where json/yaml blocks are empty in https://github.com/Kong/public-ui-components/pull/1080
The fix is to NOT use computed for getPayload in GatewayServiceForm since it is the only entity different from other entities because it uses defineExpose and Jilson said don't have to use computed unless necessary, we can use a regular object
Verified unique name constraint is still enforced

Deploy Preview https://pr-7419--khcp-ui.cloud-preview.konghq.tech/

Why are we going back and forth on this? Is there a concern when using computed or can we leave it as it is? I'm trying to understand the context here.

Why are we going back and forth on this? Is there a concern when using computed or can we leave it as it is? I'm trying to understand the context here.

@jillztom I demoed this in today's standup PL as using computed causes a bug where the json/yaml blocks are empty only in GatewayServiceForm (attached screenshot below). Only for GatewayServiceForm I want to use a regular object so everything works as expected in the form and in the json/yaml blocks. I can demo on Zoom if that's easier.

Why are we going back and forth on this? Is there a concern when using computed or can we leave it as it is? I'm trying to understand the context here.

@jillztom I demoed this in today's standup PL as using computed causes a bug where the json/yaml blocks are empty only in GatewayServiceForm (attached screenshot below). Only for GatewayServiceForm I want to use a regular object so everything works as expected in the form and in the json/yaml blocks. I can demo on Zoom if that's easier.

The issue is, you are passing :form-fields="getPayload.value" instead of :form-fields="getPayload". Remember, it's a computed property.


Update README.md

Fixing typos - there were 4 words saying

CrypoKitties

instead of CryptoKitties.

@pylyf  Thanks for fixing the typos. Keep it up. Cheers. Prost. Greetings from Vienna.


Please add a screen shot

I'd like to add this to awesome-zsh-plugins, but I prefer to add themes with screen shots so that users can see what they look like without having to install them.
Thanks!

I don't think this is worth to be included to awesome-zsh-plugins since this is my personal ZSH theme and it only has one Distro icon (which is RHEL) for the sake of simplicity.

Fair enough.


fix smaller inconveniences with thumbnail sample for node

Description of changes:

use backticks for making interpolation working
lowercase file extension check

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Thanks!


fix sorting bug

This PR fixes #17633
root cause

the current implementation relies on the sample data (the first row in the data set) to determine the  column type, it works well for certain scenarios, but for scenarios described in issue above, it will produce inconsistent results.
we are treating Null as a string (using its display value) when sorting, when sorting with strings the results will be wrong.

fix:

use the order: undefined -> number -> string to sort the values which will produce consistent results.
treat null as a special value

new results using the example provided in the issue:

results with mixed values: null, empty string, string, number

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

15 of 16 (93.75%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.04%) to 41.704%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/sql/workbench/contrib/query/browser/gridPanel.ts
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.04%

Covered Lines:
27199

Relevant Lines:
59213

💛  - Coveralls


Fix JSON string encoding

Fixes #839
Note, I considered using gjson.AppendJSONString for better performance, but it currently doesn't have an option to disable escaping of HTML characters - which I think would be undesirable here.  See https://github.com/tidwall/gjson/issues/362

... actually hold on this for a minute.  I just realized that while it fixes the bug mentioned, it also now creates a new bug since pre-escaped characters will get double-escaped.
I'll add a test for that and update this PR shortly.  Thanks.

Ok, it should be good now.  Thanks.

LMK if you want it fixed in V1 also.  Thanks.

Block indentation has been fixed, with passing tests.
BTW, I tried figuring out how to fix it in the lexer, but ran into problems because the resulting tokens are always just start/end pointers back to the original raw text.  For the indentation parsing algorithm to work correctly, it has to be able to exclude data from the middle of a character sequence.  So instead, I just wrote functions to find the original raw block string, and then parsed it according to the spec.  Hope that works for y'all.

@mattjohnsonpint thank you!


How to verify the automatically-bound property in Get?

The warning box says:

For security reasons, you must opt in to binding GET request data to page model properties. Verify user input before mapping it to properties. Opting in to GET binding is useful when addressing scenarios which rely on query string or route values.
To bind a property on GET requests, set the [BindProperty] attribute's SupportsGet property to true: [BindProperty(SupportsGet = true)]

My question:
As binding is done automatically by the framework, how can I verify the property?
Is using ModelState.IsValid the verification method you meant?
Please give me an example. My code below always rejects the incoming Get because
the Name property is always invalid. I think I am wrong  in interpreting  "Verify user input before mapping it to properties." in the warning box above.
public class EditModel : PageModel
{
    private readonly AppDbContext _db;
    public EditModel(AppDbContext db) => _db = db;

    [BindProperty(SupportsGet = true)]
    public Customer Customer { get; set; }

    public async Task<IActionResult> OnGetAsync()
    {
        if (!ModelState.IsValid)
            return Page();

        Customer = await _db.Customers.FindAsync(Customer.Id);
        if (Customer == null)
            return NotFound();

        return Page();
    }
}

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

ID: 164d7efe-01bf-0b26-7a23-f10704f338f5
Version Independent ID: b3e2bc87-1582-2d34-c7c2-7c8e901ac771
Content: Introduction to Razor Pages in ASP.NET Core
Content Source: aspnetcore/razor-pages/index.md
Product: aspnet-core
Technology: aspnetcore-razorpages
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

Verify it's not dangerous, for example JavaScript or SQL injection.


Merge changes from upstream repo

Merge changes/updates from upstream tabular-io master to keep up-to-date.

Would recommend testing the changes and adding it in description


Log sys.executable for all runs

I think sys.executable should be automatically saved for all runs. Maybe as "config.executable"?
PS, don't want to spam this list too much, let me know if it's more productive to batch feature requests rather than posting them as individual github issues

This is great, keep them coming!  We’ll likely add sys.executable to wandb-metadata.json which has things like os, Cuda, and args in it.  We don’t index this file.  Does your usecase involve filtering by this value in the tables?

The use-case is to be able to reproduce the run later. The environment has multiple conda envs, and having python interpreter tells me which conda env was used to run it.
Filtering by this value could be useful to find regressions -- ie, when I upgrade PyTorch, I install it into new conda env and redo the runs. An alternative is to automatically log framework versions in wandb. (using torch.__version__ or pip freeze)

I just released this in 0.8.2, it's stored in wandb-metadata.json I'll expose it in the overview UI shortly.


Navigation in MVi

Consider such a demand：Click the button to post data to the server and then navigate to the other Activity  when request success. I modified the ProductDetailsPresenter and ProductDetailsActivity to provide some test for me.
I add a testBtnIntent() method for the ProductDetailsView to handle a click intent.
public class ProductDetailsActivity extends MviActivity<ProductDetailsView, ProductDetailsPresenter>
    implements ProductDetailsView {

    @Override
    public Observable<Boolean> testBtnIntent() {
      return RxView.clicks(btnTest).share().map(it -> true);;
    }

    @Override public void render(ProductDetailsViewState state) {
    Timber.d("render " + state);

    if (state instanceof ProductDetailsViewState.LoadingState) {
      renderLoading();
    } else if (state instanceof ProductDetailsViewState.DataState) {
      renderData((ProductDetailsViewState.DataState) state);
    } else if (state instanceof ProductDetailsViewState.ErrorState) {
      renderError();
    } else if (state instanceof ProductDetailsViewState.TestViewState) {
      TestClickActivity.start(this);
    } else {
      throw new IllegalStateException("Unknown state " + state);
    }
  }
}

And then mergeWith the loadDetails method
 @Override protected void bindIntents() {
    ...
    Observable<ProductDetailsViewState> loadDetails =
        intent(ProductDetailsView::loadDetailsIntent)
            .doOnNext(productId -> Timber.d("intent: load details for product id = %s", productId))
            .flatMap(interactor::getDetails)
            .observeOn(AndroidSchedulers.mainThread());

    Observable<ProductDetailsViewState> clickTest =
        intent(ProductDetailsView::testBtnIntent)
        .map((aBoolean) ->  new ProductDetailsViewState.TestViewState());

    subscribeViewState(loadDetails.mergeWith(clickTest), ProductDetailsView::render);
  }

Because the viewStateBehaviorSubject will reemit the latest viewstate , so it will always reemit the clickTest when I go back the previous page and the TestClickActivity will open again and again, The expected should be to go back to the previous page without reemit the click event. Sorry
for my bad English. hope I can explanation of this. And can you give me some suggestion？

We have some similar discussion about SnackBar here #255
However, I think navigation can be seen as "side effect" since it is not affecting (nor changing) the state for your current View. For Example the state of  ProductDetailsActivity is not changed by navigation per se, right?
Navigation is "just" a side effect of a state change in ProductDetailsViewState. Side effects can be modeled in RxJava with doOnNext() operator.
I think something like this should work:
Assuming you have some class Navigator:
class Navigator {
    private final Activity activity;
    public void navigateToTestActivity(){
          TestClickActivity.start(this);
    }
}

Then you could inject the Navigator into ProductDetailsPresenter
class ProductDetailsPresenter extends MviBasePresenter<...> {

   private final Navigator navigator;

   @Inject
   public ProductDetailsPresenter(Navigator navigator){
         this.navigator = navigator;
    }

    @Override protected void bindIntents() {
    ...
    Observable<ProductDetailsViewState> loadDetails =
        intent(ProductDetailsView::loadDetailsIntent)
            .doOnNext(productId -> Timber.d("intent: load details for product id = %s", productId))
            .flatMap(interactor::getDetails)
            .observeOn(AndroidSchedulers.mainThread());

    Observable<ProductDetailsViewState> clickTest =
        intent(ProductDetailsView::testBtnIntent)
        .map((aBoolean) ->  new ProductDetailsViewState.TestViewState())
        .doOnNext( aBoolean -> navigator. navigateToTestActivity() ); // Navigation as side effect

    subscribeViewState(loadDetails.mergeWith(clickTest), ProductDetailsView::render);
  }
}

Of course you have to keep in mind that Navigator might leak the Activity on config change (since presenter is kept during config change). I just wanted to illustrate a possible solution.

@sockeqwe Thanks. It's a good solution, and maybe I can just pass the View to the Presenter just like MVP does, but I think whether have a more elegant way to do this？（Maybe like your discussion in #255）

Hi!
I chose to include navigation through the MVI pattern to be able to log every user action within the app.
I had the same problem above and couldn't just pass references to a Navigator or start activities from the Presenter because I keep the presentation layer in a separate project module.
My solution was to clear the navigation flags with another MVI intent triggered by onPause.
I know it's a bit dirty, I'm new to MVI, any feedback is welcomed! :D
PS: Great library!
Presenter.kt
...
override fun bindIntents() {
...
val clearViewStateIntent = intent { view -> view.clearNavigationIntent()}
                .map { LandingViewState() }
                .subscribeOn(Schedulers.io())

        val allIntents = Observable.merge(
                createViewIntent,
                loginIntent,
                signUpIntent,
                clearViewStateIntent
        ).observeOn(AndroidSchedulers.mainThread())

        subscribeViewState(allIntents, LandingContract.View::render)
}

Activity.kt
...
override fun onPause() {
        pauseSubject.onNext(true)
        super.onPause()
    }
override fun render(viewState: LandingContract.State) {
        when (true) {
            viewState.navigateToLoginScreen() -> SignInActivity.start(this)
            viewState.navigateToManageScreen() -> ManageActivity.start(this)
            viewState.navigateToSignUpScreen() -> SignUpActivity.start(this)
        }
    }

    override fun clearNavigationIntent(): Observable<LandingContract.Intent.ClearNavigationIntent> {
        return pauseSubject.map { LandingContract.Intent.ClearNavigationIntent() }
    }

@andreiverdes I think you can use the scan() on the MviBasePresenter#viewStateBehaviorSubject to filter the LandingContract.State

@sockeqwe How do you suggest handling navigation in the case where the next screen needs data that is in the view state?

I'm having the same problem. It seems the problem is caused by using view state to accomplish navigation as a side effect, as @sockeqwe mentioned. I am not a big fan of passing the Activity into the Presenter though, so I will try out the approach @andreiverdes outlined.
Would it be feasible to allow certain View States to be consumed instead of replacing the previous one?

Jfyi: I have figured out a simple pattern of how to do navigation properly
(not only MVI related, but works well with MVI).
I can share it next week as I'm going to present it on a Meetup next Monday.
Stay tuned.
Andy Byrnes<EMAIL_ADDRESS>schrieb am Mi., 11. Apr. 2018, 06:22:

Would it be feasible to allow certain View States to be consumed instead
of replacing the previous one?
@skykelsey https://github.com/skykelsey For this I've been having a
dummy state that gets emitted by navigation intents (I call it NoOp) and
is just filtered out to avoid any unnecessary renderings:
val intent1 = intent(...)val intent2 = intent(...)
val viewStateObservable = Observable.merge(intent1, intent1).filter { it !is NoOp }
subscribeViewState(viewStateObservable, View::render)
This, however, doesn't solve the main problem at hand, for which I still
haven't come up with an elegant solution, unfortunately. It doesn't seem
like Mosby is well equipped to handle navigation in the presentation layer.
So in the meantime I've implemented a base presenter that inherits from
MviPresenter and hacks away at its implementation details to retrieve the
previous view state, if it exists, and directly notify the view that a
navigation event has occurred. This, combined with filtering out NoOp
view states, has yet to cause me any issues.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/sockeqwe/mosby/issues/261#issuecomment-380322785, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAjnrgjDcIoSd1TIj7nYK38vlE5ctmrdks5tnYUegaJpZM4ONlOH
.

I have figured out a simple pattern of how to do navigation properly

Any news on this? I couldn't find anything about it on your blog.

My bad, I haven't had time to write a blog post or clean up my example repository ... Maybe next week ... sorry ...

Thanks @sockeqwe I'm interested as well when you find the time.


Integrate with REDIS

During the technical refresh, MongoDB has been used to emulate an object storage to allow for an easier integration. Other longterm solutions need to be integrated. Redis is one of them.

Integration will be done using the IDistributedCache interface from Microsoft : https://docs.microsoft.com/en-us/aspnet/core/performance/caching/distributed?view=aspnetcore-6.0
The bridge to use this interface is already available.

Need to review the redis configuration
Create external Redis
Need to develop source code to store client payload into Redis

is already implemented. RedisDistributedCache is injected as a IObjectStorage


Add support for dashed digest algorithm names in CMSSignedGenerator

This PR addresses issue 183
Adds support for digest algorithm names containing a dash in it in CMSSignedGenerator
e.g. SHA-256withRSA

Hi @fedelippo @jstedfast can this get looked at and merged please?

Hi @fedelippo @jstedfast can this get looked at and merged please?

I'm not a maintainer so I can't approve/merge PR's.

I'm not a maintainer so I can't approve/merge PR's.

@agpreynolds I will look at it this weekend.

@agpreynolds I will look at it this weekend.

@jstedfast apologies I thought you were, please take it as a compliment!
@peterdettman is there any chance this can be merged?

@jstedfast apologies I thought you were, please take it as a compliment!
@peterdettman is there any chance this can be merged?

Apologies @peterdettman I just refreshed the page and saw you had already responded. Thank you 🙂

Apologies @peterdettman I just refreshed the page and saw you had already responded. Thank you 🙂

Hi @peterdettman is there any chance you can take another look at this?

Hi @peterdettman is there any chance you can take another look at this?

Finally merged, sorry for the delay.

No need to apologise, thank you for taking the time to look at this and for your continued efforts with the project 🙂


Sequence Editor Ground epoch time tag

Closes #1368
A new time tag, 'G', to represent the ground epoch in the sequence
Reconfigured Ground Epoch: The ground epoch is now represented as a time tag 'G' to better match with existing time tags R1 A2020-001T00:00:00 E+00:10:00 C.
Autocompletion support: The 'G' time tag has been added to autocompletion suggestions.
Function refactoring: Time checking logic has been moved to a dedicated function
Linting support: Linting rules have been updated to support the 'G' time tag and ensure correct usage within 'Request' blocks.
SeqJson support: Both export and import functionality for SeqJson include the 'G' time tag, enabling seamless data exchange.
Unit test updates: Unit tests have been modified to cover the new 'G' time tag functionality.
Testing: Make sure you copy-paste this into the editor and export reimport the seqJson for round tripping
@ID "G Time Tag"

G-00:00:01 "epoch1" @REQUEST_BEGIN("request1")
  C FSW_CMD_0 "ON" false 1
@REQUEST_END

G+10 "epoch2" @REQUEST_BEGIN("request2")
  C FSW_CMD_0 "ON" false 1
@REQUEST_END

G002T00:01:00 "epoch3" @REQUEST_BEGIN("request3")
  C FSW_CMD_0 "ON" false 1
@REQUEST_END

C @REQUEST_BEGIN("request4")
  C FSW_CMD_0 "ON" false 1
@REQUEST_END

I'm good with the grammar change if @shaheerk94 concurs with the resulting
The format differed because, I thought the name should go before the delta, I'll also add that the delta is unrestricted in the schema, but downstream tools aren't as flexible and I consider that a required schema update that shouldn't block this.
https://github.com/NASA-AMMOS/seq-json-schema/blob/fdad4b3af45906de9c02a3fb67817f1e399fde69/schema.json#L151

@dandelany
Breaking Change:
Reworked the Ground Epoch Time for the request blocks to match existing time tags (R,E,A,C)
Old Format: @GROUND_EPOCH("Name", "+1.00") @REQUEST_BEGIN
New Format: G1 "Name" @REQUEST_BEGIN
This change breaks any sequence that relies on the old way to represent ground epoch times. You will need to change @GROUND_EPOCH annotation to a G time tag as shown above.


Popup within Popup not working

Opening a new soda pop from within an existing popup should close the first popup. This should be the behavior for both declarative and autoopen.

This is fixed in v1_7. I added a "fast" boolean to the close method, so that I will close instantly.


Fix Dialog filters

While the selected filters can be passed into the dialog context the filter isn't being applied within a dialog query.

Update: this issue is caused when using an unforked query as the filter is inserted ahead of the table name in this case.

Thanks. Will implement the changes locally and test.
Do you have a filter type available which is a date picker? Would that be easy to implement?
Gary
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10
From: David<EMAIL_ADDRESS>Sent: 07 August 2017 18:30
To<EMAIL_ADDRESS>Cc<EMAIL_ADDRESS>Subject: Re: [CatalystCode/ibex-dashboard] Fix Dialog filters (#262)
Update: this issue is caused when using an unforked query as the filter is inserted ahead of the table name in this case.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/CatalystCode/ibex-dashboard/issues/262#issuecomment-320728108, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ADuE6R4ZhF1APT8zcgKtQVbL6xOnI8Smks5sV0mxgaJpZM4Ovsma.

Hi @deadlyfingers & @garypretty,
Was this solved by the latest PR?

Yip, we can close this.


v-autocomplete shows Maximum recursive updates exceeded and input stay behind the modal

Environment
{
  "@gits-id/ui-nuxt": "^0.16.3",
  "vee-validate": "^4.7.3",
}

Reproduction
This is the first time I'm using GITS UI, and it's so good and lightweight.
I want to report an issue that, I have some form that implementing Autocomplete and vee-validate as form validation.
<script setup lang="ts">
const validationSchema = object({
  role: object().required().label('Role')
})
const { handleSubmit } = useForm<IAuthFormChangeRole>({
  validationSchema
})
</script>

<template>
  <form>
    <!-- Role -->
    <app-form-group>
      <v-autocomplete label="Role" name="role" :items="props.roleList" />
    </app-form-group>
  </form>
</template>

Describe the bug
Hi @gravitano , when I start to integrate my code with vee-validate, I get some warning message from console that says Maximum recursive updates exceeded like so;

But, when I implement the form without vee-validate the warning is no longer there, like this;

Is this bug or no? Or maybe the problem is inside vee-validate, because when I integrating another form beside Autocomplete it's working fine. Or maybe someone have same problem with me?
I know this is just a warning, but it say Maximum recursive updates exceeded. I fear this warning will impact to the app performance.
Thank you in advance.
Additional context
P.S, maybe this is related to Multi Select too. The warning stay the same and appear to the console.
Extra issue, when I implement this select option inside modal, it will not overflow, it's stay behind modal. Any suggest?

The data inside the input is like so, it has 5 data (array of object) inside of it
[
  { "text": "Role 1", "value": 1 },
  { "text": "Role 2", "value": 2 },
  { "text": "Role 3", "value": 3 },
  { "text": "Role 4", "value": 4 },
  { "text": "Role 5", "value": 5 }
]

Thank you again.
Logs
No response

Hi,
Thanks for the report and sorry for the inconvenience.
Can you create working reproduction via Stackblitz so I can investigate more?
Thank you.

Hi @hudaprs,
Sorry, this took so long. I think this is because you have a component with the same name that connects with vee-validate form.
Either change the component's name or extract the form into a separate component.
You can check the working solution here: https://stackblitz.com/edit/github-vgvk3n?file=nuxt.config.ts,pages%2Fmultiselect.vue,pages%2Findex.vue

Hi @gravitano ,
Sorry for the late response too.
I already check to make separate component, and make reproduce step as you mention by changing the name or extract the form into a separate component. But when I start to reproduce it, the issue still the same, and still throwing the warning.
Also, the same name of the input, doesn't make any different when try to change it.

As you said, I try to make separate component for the form. You can check the reproduce at this link, and check inside /separate path. And still, throwing the warning.

I assume it's the rule of the yup that implemented inside vee-validate and I try to change from:
const validationSchema = object({
  role: object().required().label('Role')
})

to:
const validationSchema = object()
    .shape({
      text: string().required(),
      value: number().required(),
    })
    .nullable(true)
    .label('Role')

But the issue still persist.

But if you want to check the real project code, feel free to go my experiment project when implementing GITS UI in:

Form that implement vee-validate. This is separate component;
UI that implement the form. Form implemented in UI named auth-form-change-role.

But you can only see the code, because the project is already integrated with Back-End in this repository 😁.

But maybe if the issue came from vee-validate package and when I remove the vee-validate from the import statement, it's working fine.
And I will try to experiment to change the validator package to vuelidate and I'm going to see if the result is the same or not.
Thank you in advance.

Hi @gravitano ,
I'm doing an experiment with a different validator package, I'm using vuelidate and you can check in this link.
When using vuelidate the warning error for Maximum recursive updates exceeded disappeared, but returned a different warning like so;

When I started experimenting, I found a new issue inside the v-multiselect component when the user clicks the clearable X button inside the input, will throw this error, this also happened inside the documentation here.

Maybe I'll iterate the issue from the top to bottom;

When changing validator package, the Maximum recursive updates exceeded is gone, but remains the same using vee-validate, maybe the UI package is not the problem, but it's in the vee-validate.
Theres an error when the user starts to clear v-mutiselect using clearable X button.
Label inside selected v-autocomplete does not get removed when the value has already been removed.
When the user starts to click the v-autocomplete for the first time, the component not showing the list, but the user must input letter first, then the list shows up. Maybe it will be better if the user sees the list for the first time user click the v-autocomplete input.

I will in touch when there's any issue in this components, or maybe in other components.
Thank you in advance.

You can ignore the warning if it does not break the application.

There's an error when the user starts to clear v-mutiselect using the clearable X button.

I can confirm this issue and it will be fixed soon.
Maybe you can create a separate issue for each component to help me track and fixing easily.

Yes, maybe if this does not affect or break the application, maybe the warning should go away then.
Thank you very much, I will make a separate issue soon for other components then.


DSMR regression on dev branch

Home Assistant release with the issue:

dev branch
Last working Home Assistant release (if known):
0.88.2
Operating environment (Hass.io/Docker/Windows/etc.):

Component/platform:

https://www.home-assistant.io/components/sensor.dsmr/
Description of problem:
After my PR, I broke the sensor.
See this comment: https://github.com/home-assistant/home-assistant/pull/21620#issuecomment-470036482
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):

Traceback (if applicable):

Additional information:
I have already made a fix and will create a PR within the hour.

#21620 is not in 0.89 release. I am going to change issue title to reflect it.

I was already worried I broke this for many people.
Thnx @awarecan


Background process to archive link times out

I recently discovered that using the docker image, supervisord has changed and the included supervisord.conf includes user=root which fails to de-escalate privileges and stops processing any further commands. I have a little more work to figure things out completely there, the jobs stdout isn't being sent to stdout for some reason, when/if I get it figured out I'll open a new ticket or a PR. However it is running and now every background process is failing on timing out (and I get rate limited by GitHub).
I've tried issuing the single-file commands stand alone, and it appears the issue is being caused by the --browser-arg="--load-extension=uBlock0.chromium". If I remove the parameter, the archive succeeds. My thinking was that something with the extension is blocking the browser from processing.
I found this issue https://github.com/gildas-lormeau/single-file-cli/issues/83 that says the frame issue is fixed in 2.0.33, so I tried installing that, and it fails with:
/tmp/node_modules/single-file-cli/single-file --browser-arg="--headless=new" --browser-arg="--user-data-dir=/etc/linkding/chromium-profile" --browser-arg="--load-extension=uBlock0.chromium" https://google.com /etc/linkding/data/assets/test.html.gz
fetch failed [2024-09-28T01:06:34.771Z] URL: https://google.com

I've reached the end of my debugging abilities with chromium and single-file.

uBlock uses an extension model that has been deprecated for some time in Chrome and was scheduled to be removed soon. Maybe that time has come, in that the latest Chromium version installed in the Docker image doesn't support the extension anymore? Would be good to have some logs from the browser itself, though single-file might swallow those.
Also interesting that you are the first one to report this. Are you using the alpine based Docker images? Those might use a newer Chromium version than the Debian based ones.
Apart from that I'm not sure what you are referring to regarding supervisor, I don't think there has been any change to that since introducing the HTML snapshot feature.

Looks like only the latest-plus-alpine is affected. That one now uses Chromium 128, which seems to include some changes that might cause the extension not to load properly. I guess as a quick fix I'll remove uBlock, and then later see if I can integrate uBlock lite as a replacement.

supervisord in the alpine image is at version 4.2.5, in 3.3.4 they changed the warning for Can't drop user privileges to an error, as such supervisord no longer starts with the setting user=root in the configuration file as per https://github.com/Supervisor/supervisor/issues/1218
I am using the alpine image and I too found it interesting that I'm the only one reporting this problem. I could try the debian image and see if that makes a difference, but it sounds like you've already found the issue.

Mhh, supervisor seemed to work fine when I tested the alpine image. The container should actually run as root, it's only the uwsgi and supervisor background task that run as www-data. Did you configure your Docker container to run as www-data instead?

Yeah, I am running as www-data, a friend gave me their deployment manifest and it had a comment about using the www-data user with a link to https://github.com/sissbruecker/linkding/issues/660 so that's the way I left it.

OK, sounds like that will not work for now. I'm not sure why I configured supervisor to run as root. Maybe that part can be removed.

Thank you for taking care of this so quickly. I'm waiting on a new image push to test it out.


Support linking to other slides

If not absolute path, and ends on .md: replace the extension with .html. Perhaps something similar to the nav option in mkdocs would be great.

Perhaps something similar to the nav option in mkdocs would be great.

Yes, this is necessary. If the markdown document is associated with other markdown files, the associated md files will be copied to the built directory during the build. This is actually not necessary. You only need to change the suffix to html.


feat: add default 0 to acc/sum

Fixes #6

Ran tests locally, looks good
939 tests, 3182 assertions, 0 failures.

LGTM!


Remove Dockerfile

why did this get removed?

@mjallday I need to spend time to understand how this can be used effectively with Docker.  At this point in time, CloudMapper is a utility, like burp or vim, which don't run in docker containers normally, so I'm unsure if CloudMapper should for the way it works.  I've recognized that CloudMapper can be difficult to install, but I don't know if Docker is the correct solution for that.

As someone who hates messy installs, and one of the first to make a Docker for this tool, I see huge value in it.
Think of it as app install... But all in a container, pun intended.
Either that, or brew cask

I tend to agree with having a docker container. You can package it another way but I really like docker since I don’t have to worry about biking my system purging and breaking everything (looking at you brew!)
My first instinct these days is to find a docker container for any project since it’s the same interface on any os.


Choice of datapoints to which RSC is applied

In the paper it is mentioned that RSC is applied to a random subset of the current batch. But it seems that from lines 126 to 146 in resnet.py, something more sophisticated is performed.
a) Can you explain what it done in that part of the code, especially the meaning of variables used in lines 142 to 146?
b) Why is the mask a variable that requires grad ? (line 149 in resnet.py)

I got an answer to my question (a) from this issue #10.
But I still don't understand, why you turn the mask into a trainable variable ?

We mention in the paper that applying RSC to the top percentage of batch samples based on cross-entropy loss is slightly better than randomness.
It doesn’t matter if you turn the mask into a trainable variable because it is an extra input.


Added the rest of the Knowledges

PR for #237
Added the other types of knowledges and used them inside Action.perform().
Class Brain removed since it became obsolete.

Coverage increased (+3.1%) to 82.27% when pulling 20980ef182a8445678c31d32e614f5795429f302 on 237 into 92a96328a3768c5c40cd0f242bc05989798f4ea9 on master.

@rultor merge it please

@rultor merge it please

@amihaiemil OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge it please

@amihaiemil Done! FYI, the full log is here (took me 2min)


Compatibility matrix section is outdated

Would it make sense to update the compatibility matrix to clarify Java 17 and Gradle 7.x compatibility?
https://github.com/xvik/gradle-mkdocs-plugin#compatibility

Have you tried it? I just didn't try it yet.

I haven't. Was trying to find out about known compatibility issues before attempting to upgrade.

Did a quick check runing tests with jdk 17 and it seems to be working.
I can't add jdk17 into CI builds because only gradle 7.4 is compatible with it, but plugin built with gradle 7.x loose backwards compatibilty (can't be used on gradle < 7) and so project stuck on gradle 6.9 for now.

Closing as there is no knowing issues. Please reopen or create a new issue if there would be any problems


[REQUEST] Show keyframes only

Describe your request
Add option to only render keyframes.
Additional context
I'm using it to update a character's position so that their feet don't slide along the ground. It's useful to be able to see where the foot was previously. But having several frames shown at once is confusing, and the keyframes aren't regularly spaced (so stepped doesn't achieve the same). I saw "direct keys" but it doesn't render anything (maybe because the keyframes are on the bones, not the mesh?)

This option should already be there. You can use the option to offset keys and not show all keys. Check the option "per key stepped" for that


Night light

It would be nice if we had the option to turn on a "night light" (50% white light) that turns off automatically after X minutes (configurable in settings) as you get comfortable in your bed. @zivkr2

Added in https://github.com/eladnava/sunriser-android/commit/d1b929c59383ee8d323d910edd03feed7c5eacce.


linter reports problems on valid BrightScript code

Testing samples from https://github.com/MotleyCoderDev/wasm2brs, the generated code (of few of the samples) are valid BrightScript code, and runs on Roku device, but the extension finds many compilation issues with it.
project.zip
The zip file can be sideloaded, but vs code will about 300 problems with it

@iBicha Thanks for this! Some of them are valid run time errors but many of them seem related the the type declaration characters on literals We will try and take a look.


LitInt parse bug

Parsing 2K as LitInt does not produce error, why? (suffix error should be emitted)

2K is a legal macro literal.


SIL: Remove isEscapedByUser flag on convert_escape_to_noescape instruction

It was only used for materializeForSet and is now dead code.

@swift-ci Please test


No package available.

Hi
i'm having problem finding this two libjpeg-turbo-utils and advancecomp
getting No package available.
Centos 6.8
any suggestions please ?
regards.

Hi David,
I'm not an expert in Centos, but this can be some (I'm presuming) yum issue. Also libjpeg-turbo-utils may not be required, but if you really can't find advancecomp, you can also compile it by following http://www.advancemame.it/doc-build#2.1. And you may want to check image_optim_pack gem.

Pardon me but speaking from experience CentOS is a poor choice of OS. Have you looked into i.e. FreeBSD?
https://github.com/toy/image_optim/issues/135

@frankie-loves-jesus The question was about solving problem on CentOS, not about the choice of OS.

Yes, sorry, just threw in slight suggestion. Nevermind me.

@sdiwo pasted wrong issue: https://github.com/toy/image_optim/issues/89
I only want what's best for my fellow image_optim users.


Too Much zooming on the Image

Greate Job! i loved it and am using Grid gallery webpart to display the pictures and it works perfectly fine except it is zooming the pictures which i dont like. any suggestion on how can i stop zooming of the images.

Hello There,
I have opened this 3 weeks ago and get no response. please help me on this


open does not exist in Linux

The uses of open here:
https://github.com/DAHeath/Logic/blob/master/src/Data/Graph/Inductive/Extras.hs#L140
and here:
https://github.com/DAHeath/Logic/blob/master/src/Data/Ord/Graph/Extras.hs#L21
should be changed to xdg-open on Linux.

Not sure on the best way to handle this. I guess ideally open vs xdg-open would be called correctly depending on your OS. I'm not sure how much it really matters though -- this function is almost purely for debugging purposes, so coming up with a complex solution to get it right seems over the top


v2 - make handlers return void

proposal from @mathieucarbou
typedef std::function<void(PsychicRequest *request)> PsychicHttpRequestCallback;
typedef std::function<void(PsychicRequest *request, JsonVariant &json)> PsychicJsonRequestCallback;

I don't understand why a handler would return an internal ESP status code: a handler is linked to serving a request and any status code within this context should lead to an http status code answer.
Those are acceptable:
    esp_err_t redirect(const char *url);
    esp_err_t reply(int code);
    esp_err_t reply(const char *content);
    esp_err_t reply(int code, const char *contentType, const char *content);

Because they are linked to the underlying API:
*  - ESP_OK : On successfully sending the response packet
 *  - ESP_ERR_INVALID_ARG : Null request pointer
 *  - ESP_ERR_HTTPD_RESP_HDR    : Essential headers are too large for internal buffer
 *  - ESP_ERR_HTTPD_RESP_SEND   : Error in raw send
 *  - ESP_ERR_HTTPD_INVALID_REQ : Invalid request
 */
esp_err_t httpd_resp_send(httpd_req_t *r, const char *buf, ssize_t buf_len);

And one would want to know if his request is sent correctly, and act upon this result within the handler.
But what is the use case for having a handler returning an error code ?

I'm looking through the esp-idf code here, and what is boils down to is returning anything other than ESP_OK from the handler will close the connection.
So, the question is:  is the ability to close the connection from the requestCallback more important than espasyncws compatability?  Is anyone even using it this way?  Is this a good idea?
Here's a potential good solution:

We could store the error status in the request object.  defaults to ESP_OK, returns that in the top level handler.
It would allow us to return void and maintain compatibility
It would be a fairly simple change if anyone is relying on that error code
We should probably look into existing uses of this return code - should they error and close the connection, or would it be better to send an http error code and return ESP_OK

I'm looking through the esp-idf code here, and what is boils down to is returning anything other than ESP_OK from the handler will close the connection.

I didn't know about that. Why would a handler close a connection ? A connection is linked to a client, not a request...
Connection closing can also be achieved with response->addHeader("Connection", "close");, which is what ESPAsyncWS is adding as header on the responses...
I agree with you, let's leave the handlers as-is.
We can even close this one because I will go with a decorator approach so API deos not need to be strictly compatible with ESPAsyncWS


opencl-clhpp: 2.0.12 -> 2.0.15

Motivation for this change
Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

No new failures (opened a PR for forge here: https://github.com/NixOS/nixpkgs/pull/147984)
Result of nixpkgs-review pr 147981 run on x86_64-linux 1

1 package failed to build:

forge

11 packages built:

arrayfire
bumblebee
clfft
clpeak
ethminer (ethminer-cuda)
ethminer-free
mandelbulber
opencl-clhpp
opencl-info
virtualgl
virtualglLib


pythonPackages.fasttext: 0.2.0 -> 0.9.1

Motivation for this change
Changes:

Refactoring of internal classes.
Better unicode handling.
New Python API: https://fasttext.cc/docs/en/python-module.html

https://github.com/facebookresearch/fastText/releases/tag/v0.9.1
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build pythonPackages.fasttext python3Packages.fasttext

Nix review passed
Result of nix-review pr 64640 1

2 package were build:

python27Packages.fasttext
python37Packages.fasttext

Thanks for the package and the reviews.


Need schema support for PostgreSQL

For PostgreSQL databases, you also need to add schema capability. The tables may not always be installed in the default schema.
i.e. mine are in a schema called auth, so this code:  (if key = 1)
$bucket = $this->db->selectRow(
	'SELECT tokens, replenished_at FROM ' . $this->dbTablePrefix . 'users_throttling WHERE bucket = ?',
	[ $key ]
);

which produces this SQL:
SELECT tokens, replenished_at FROM users_throttling WHERE bucket = 1

would become this:
$bucket = $this->db->selectRow(
	'SELECT tokens, replenished_at FROM ' . $this->dbTableSchema . '.' . $this->dbTablePrefix . 'users_throttling WHERE bucket = ?',
	[ $key ]
);

which would produce this SQL:
SELECT tokens, replenished_at FROM auth.users_throttling WHERE bucket = 1

Thanks!
We certainly had PostgreSQL’s schemas in mind.
What we wanted is a database-agnostic and driver-agnostic library. So this doesn’t necessarily need the vocabulary that PostgreSQL uses, as long as it supports its features.
Our idea was that you could simply add the schema as a prefix to the dbTablePrefix instead of having a separate dbTableSchema. That means your dbTablePrefix would be auth.users_ and your table name would be throttling. Or your prefix would be auth. and your table name users_throttling.
If there are any serious downsides to this, we’d certainly consider adding a separate variable for this, though. Can you comment on whether there are any problems with our solution in practice?
We thought that tables with a common prefix (and belonging to a common component) would probably share the same schema as well. Is that wrong?

While I can do this, the issue with PostgreSQL is that if you enclose the tablenames in quotes it fails:
SELECT * FROM "table1"

works, but
SELECT * FROM "schema.table1"

doesn't commenting out this line, in several places, makes it work:
// escape the table name
$tableName = $this->quoteIdentifier($tableName);

I did it but it wasn't pretty, still had to pass it in the constructor. I used a ternary to determine if it had one and modified the SQL kind of like this:
$this->db->insert(
    (isset($this->dbTableSchema) ? $this->dbTableSchema . '.' : '') . $this->dbTablePrefix . 'users',
    [
        'username' => $username,
        /* other fields */
    ]
);

Are you suggesting that we should add schema support to this database library here or to our authentication library?
For this database library here, our review shows that only the following three methods are affected:
PdoDatabase#insert
PdoDatabase#update
PdoDatabase#delete

Is that correct?
If so, it seems this would simply be a matter of introducing a schemaName variable (and also a tableNamePrefix variable), prepending those two variables to the tableName variable in the three methods mentioned above, and quoting or escaping all three components separately.
By the way, the reason why our authentication library handles the prefix for the table names itself is that this database library here could support a shared prefix but the authentication library can also be used with plain PDO instances, which don’t support such prefixes.
Further, you may have a shared prefix for the tables used by your authentication component, but a different prefix for other tables used by your application. If we implement the prefix here in this database library, it must be shared by all tables that your application uses.

Are you suggesting that we should add schema support to this database library here or to our authentication library?

No, it should be a property of the DataSource. I understand having a dbTablePrefix being passed to the Auth constructor to allow different schemas for the Auth library. You can have both.
The schema would also have to be added to the SQL in the Auth, Administration, and UserManager classes.
Auth lines:
117
159
356
623
820
834
922
1135
1161
1247
1387
1694
1871
Administration lines:
280
306
460
476
552
UserManager lines:
143
261
406

Thank you!
Support for qualified table names, and thus for non-default schemas in PostgreSQL, has now been added in https://github.com/delight-im/PHP-DB/commit/cf4cd6cd6143da1fb936891989e6b6047733d69f and https://github.com/delight-im/PHP-DB/commit/7a03da20b5592fa445c10cd6c7245d51037292c4. Specifically, this change affects PdoDatabase#insert, PdoDatabase#update and PdoDatabase#delete.
Adding support for a default schema is something that we may consider in the future, but I’m not sure about that yet. It has to work really well and must be convenient and unambiguous. One thing to consider is that this library allows for the shorthands Database#insert, Database#update and Database#delete but also accepts explicit statements written out in full.
Support for the database schema has also been added to our authentication library now, namely in the form of another argument to the constructor (Sorry!) which should ensure full PostgreSQL support, also with non-default schemas.


Review of COSMIC evidence strings

The current work on unique_association_fields and the replicated .literature in evidence strings led to the current changes to the COSMIC evidence strings for the 19.09 data submission:

Remove top level .literature section
In unique_association_fields keys:
a. change gene -> target_id
b. change disease_uri -> disease_id
In unique_association_fields values:
a. In target_id: instead of gene symbol use (http://identifiers.org/ensembl/+ENSG_gene_id+[identifiers.org])

Will the scripts that process COSMIC to generate the evidence strings be added to https://github.com/opentargets/evidence_datasource_parsers?

Just for completeness: @hammer see responses to this ticket: #705

.unique_association_fields.target_id is currently (19.09 OT release) provided as http://identifiers.org/ensembl/ENSG00000148584[identifiers.org]. Contacted COSMIC to remove the [identifiers.org].


Api for exporting content subfiles along the main file

Are there any (breaking) changes if we merge this PR?

Are there any (breaking) changes if we merge this PR?

As far as I can tell no. Everything exports the same.


Why the software history was not kept?

Hi there,
I'm a researcher studying software evolution. As part of my current research, I'm studying the implications of open-sourcing a proprietary software, for instance, if the project succeed in attracting newcomers. However, I observed that some projects, like heron, deleted the software history during the transition to open-source.
https://github.com/twitter/heron/commit/2218e8a4ddcd4283a38e8c6b7116dc8e743657ee
Knowing that software history is indispensable for developers (e.g., developers need to refer to history several times a day), I would like to ask heron developers the following four brief questions:

Why did you decide to not keep the software history?
Do the core developers faced any kind of problems, when trying to refer to the old history? If so, how did they solve these problems?
Do the newcomers faced any kind of problems, when trying to refer to the old history? If so, how did they solve these problems?
How does the lack of history impacted on software evolution? Does it placed any burden in understanding and evolving the software?

Thanks in advance for your collaboration,
Gustavo Pinto, PhD
http://www.gustavopinto.org

PS: Sorry for the mistake closing the issue.

@gustavopinto - thanks for the note
1 - We keep history for window of time. Otherwise, git log grows unchecked and the repo checkout time becomes larger. Furthermore, when a software is open sourced, we don't want to expose the history due to confidential reasons. Based on practical experience, a history more than a year is used very rarely.
2 - In our case, the core developers pretty much know the history. Again as I said in 1) very rarely there is a need to go back in history beyond a certain time.
3 - New comers tend to work with the provided environment. In an environment, where the software is continuously tested and everything seems to be working pretty well, new comers hardly tend to look at the history - unless it is really needed, again not more than a given window of time.
4 - Software evolution using a history is valuable. It is difficult to understand only from code. For such evolution documentation is more helpful.
Just to reiterate, these are my opinions based on practical experience.

Hi @kramasamy,
thanks once again for answering our research inquiries. We were able to collect 35 responses and we drafted a research paper with the results. The paper was submitted and accepted for the 14th International Conference on Open Source Systems (http://oss2018.org/). You can find the paper here. Hope you enjoy reading the paper!
Thanks again,
Gustavo


The MudBlazor menu appears in the top left corner of the container when right clicking on a node component

I have a MudBlazor menu that is using DiagramCanvas as an activation context which gets triggered on a right click.  This works fine when I click on an empty space on a canvas and I've even made it so that I can add nodes using that opened menu. But when I right click on a node, the menu doesn't appear at cursor, but in top left corner instead. Maybe it is getting passed null as the position? Would it be possible to fix that?
Ideally, I'd like to suppress its activation when clicking on a node, but maybe I'd need to implement a different kind of system for that.

<MudCard Class="pa-8 ma-0" Style="width: 300px;"
         @oncontextmenu:stopPropagation>
    <MudTextField T="string"
                  DisableUnderLine="true"
                  Variant="Variant.Outlined" Lines="5"
<EMAIL_ADDRESS>                  @onmousedown:stopPropagation @onmousemove:stopPropagation
    />
    @foreach (var port in Node.Ports)
    {
        <PortRenderer Port="port"/>
    }
</MudCard>

Suppressing it like this is good enough for the time being, though I am wondering if it would be possible to fix the positioning issue.

Hey, glad you figured it out. It is necessary to stop the propagation of events from other controls in order to stop these unwanted behaviors (since events travel from child to parent).
Can you create another issue for the positioning?


Bug report: bitstring concatenation in lfe_shell

Hi, all
the following code works:
(defun test-bit ()
    (let ((a (binary (3 (size 2))))
        (b (binary (1 (size 1))))
        (c (binary (15 (size 4)))))
        (binary (a bitstring) (b bitstring) (c bitstring))))
lfe> (utils:test-bit)
#B((127 (size 7)))

but it fails to work in lfe_shell
lfe> (set a (binary (3 (size 2))))
#B((3 (size 2)))
lfe> (set b (binary (1 (size 1))))
#B((1 (size 1)))
lfe> (set c (binary (15 (size 4))))
#B((15 (size 4)))
lfe> (set d (binary (a bitstring) (b bitstring) (c bitstring)))
exception error: #(undefined_bittype 'lfe_shell)

It has to do with c/1 being being a shell macro so it is expanded to "(call 'lfe_shell 'c bitstring)" when building the bitstring. Your function test-bit/0 was defined inside the module utils where there is no c macro defined so there is no expansion.

@rvirding aha! That's the reason. thanks for the explanation


Sandbox Chronograf doesn't start

Hey guys,
I am running Ubuntu 20.04 and I cloned https://github.com/influxdata/sandbox.git for installation. I installed docker version 26.1.3, build b72abbb and docker-compose version 1.29.2, build 5becea4c.
Logs of chronograf give this:
./sandbox logs chronograf
Using latest, stable releases
Following the logs from the chronograf container...
Attaching to sandbox_chronograf_1
chronograf_1     | time="2024-05-19T13:24:21Z" level=error msg="Unable to create bolt clientUnable to open boltdb; is there a chronograf already running?  open /var/lib/chronograf/chronograf-v1.db: permission denied"
sandbox_chronograf_1 exited with code 1

The documentation works fine and is available in the browser. Maybe someone know what to do.

Solution: open docker-compose.yml --> go to chronograf --> change under volumes:
  # Mount for chronograf database
  - ./chronograf/data/:/**var**/lib/chronograf/

  --> to:

  volumes:
  # Mount for chronograf database
  - ./chronograf/data/:/**usr**/lib/chronograf/


Request: Add a 'Download on SideQuest' button to the Branding page

It would be great to have a call-to-action download button for SideQuest, like the App Store and Play Store buttons, for when linking to our SideQuest app page.

Good idea! I'll get the designer on this!

done!


http query format should support ssv, tsv, pipes

Current format typing has some limitation for emitter: https://github.com/microsoft/typespec/blob/a75d6f946c0d48b35520496fe126f49ccf3c0fff/packages/http/src/types.ts#L215

hhm I fixed that already in a hotfix. Maybe it didn't get merged back

ah I see, thats the type of the accessor, that was missed. If you are blocked you should be able to cast to as any and it should still have other values

We dropped support for tab separated values in OpenAPI v3 and I do not believe anyone has complained.


feat: externalization of config and inventory

:tada: This PR is included in version 0.2.0-develop.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 0.2.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Support for Controlling

https://www.curseforge.com/minecraft/mc-mods/controlling

This issue is very necessary. I should have created it myself when I first got notified about it. (https://github.com/Siphalor/nmuk/issues/2#issuecomment-988959111)
Thanks you did it. :)
I am going to make a fix that makes it compatible with Controlling. (https://github.com/Siphalor/nmuk/issues/2#issuecomment-988977713)

NMUK is now compatible with Controlling. You can download it here:
https://github.com/Klotzi111/nmuk/releases/tag/1.3.0

NMUK is now compatible with Controlling. You can download it here: https://github.com/Klotzi111/nmuk/releases/

Not sure if compatibility with Controlling was removed for 1.20.x but it seems like it was, so just bumping the thread to let you guys know.

@Siphalor @Klotzi111 I just heard from jaredlll08 (the developer of Controlling) and he said he's happy to add support code to his mod so you guys don't have to add it to yours, if that's easier for you.

Bumping with @Gamemassa–looks like whatever was in place for controlling support is no longer in-place.


Add "jsnext:main" to the package.json to support Rollup

Adds support for Rollup - https://github.com/rollup/rollup/wiki/jsnext:main

:+1: thanks. I have also added it to router5 dependencies: route-node and path-parser.

Awesome. Let me know when you publish all those to npm.

It's all published already!

:+1:


Accept a custom newline character

fixes GH-57
This patch exposes a new API "cli:set_newline_char(String)" that
overrides the default "\n" newline character for use in printing.

Per comments in #57, closing for now ... happy to re-evaluate if evidence crops up that we're actually missing out on something.


Need help, not sure if I'm doing everything right.

Hi! I'm trying to build quite a complex audio platform and after days of looking for the right audio player, I think cassette might be the one I need. But I kinda stuck here and before I go deeper and start reinventing the wheels, I thought, I better ask for advice and guidance, and if available examples :)
So, I'm trying the get multiple audio players per page and one footer "main player", all the players will be customized and display waveforms (which I render serverside). Here is a simple example (even though here the footer player has just simple progress bar in my case it would have also a waveform)

From all the Cassette examples I see, that usually if there are multiple players per page - they are just simple play buttons without displaying the audio duration and so on. Can it be changed so every file has duration and progress and all the details?
I found this demo app https://github.com/benwiley4000/cassette-demo-app and tried to modify it's code a bit, to achieve what I'm looking for but unfortunately, I cannot get it to work right, even though I managed to attach a ProgressBar to the players I'm not sure how to give them unique ID or other RIGHT way of doing it, so when we change the progress of the main player the progress should also be changed only for the currently playing player in the playlist. Here is the screenshot and the code I managed to "compose":

import React, { Component } from 'react';
import './App.css';
import {
PlayerContextProvider,
FullscreenContextProvider,
playerContextFilter,
PlayerContextGroup
} from '@cassette/core';
import { MediaPlayerControls } from '@cassette/player';
import { MediaProgressBar } from '@cassette/components';
import './player_styles.scss';
import playlist from './playlist';
function TrackPosition({ activeTrackIndex, playlist }) {
return (

Track {activeTrackIndex + 1} / {playlist.length}

);
}
function PlaylistMenu({ playlist, activeTrackIndex, onSelectTrackIndex }) {
return (

Select a track:
{playlist.map((track, i) => {
const playing = activeTrackIndex === i;
TrackPosition({activeTrackIndex, playlist});
    return (

 onSelectTrackIndex(i)}
      >
        {playing && '▶'} {track.artist} - {track.title}
        <MediaProgressBar
          style={{ background: 'black', height: 15 }}
          progressStyle={{ background: 'orange' }}
          progressDirection="right"
        />

    );
  })}

);
}
PlaylistMenu = playerContextFilter(PlaylistMenu, [
'playlist',
'activeTrackIndex',
'onSelectTrackIndex'
]);
function FfwButton({ playbackRate, onSetPlaybackRate }) {
return (

 onSetPlaybackRate(3)}
onMouseDown={() => onSetPlaybackRate(3)}
onMouseUp={() => onSetPlaybackRate(1)}
onMouseLeave={() => onSetPlaybackRate(1)}
onTouchEnd={() => onSetPlaybackRate(1)}
>
⏩

);
}
FfwButton = playerContextFilter(FfwButton, [
'playbackRate',
'onSetPlaybackRate'
]);
const secondPlaylist = [
{
url:
'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ElephantsDream.mp4',
title: 'Elephants Dream',
artist: 'Orange Open Movie Project'
}
];
class Player extends Component {
render() {
return (

<PlayerContextProvider
playlist={playlist}
initialStateSnapshot={this.snapshot}
onStateSnapshot={shot => {
localStorage.setItem('media_snapshot', JSON.stringify(shot));
}}
>

 this.mediaContainerElem = elem}
>

<MediaPlayerControls
controls={[
'spacer',
'playpause',
'forwardskip',
'mute',
'spacer',
'progress',
'fullscreen'
]}
/>

{this.state}

);
}
}
export default Player;
Thanks a lot for reading through this!
P.S. on the docs website we got this "main" footer player, how do we actually build such kind of footer player? I cannot find examples of this. But from what I understand it's just a simple player which is fixed to the bottom of the page with css?

Hey! These are great questions, thanks for the detailed post.
To try to give you some quick tentative answers:

From all the Cassette examples I see, that usually if there are multiple players per page - they are just simple play buttons without displaying the audio duration and so on. Can it be changed so every file has duration and progress and all the details?

Yeah for sure, you can have multiple fully functional players on the same page. The docs page is an example of this. You can also see a version of that on my own website: https://benwiley.org/music. And I guess in your own code you've figured something out, at least partway.

I'm not sure how to give them unique ID or other RIGHT way of doing it, so when we change the progress of the main player the progress should also be changed only for the currently playing player in the playlist.

Yeah, good question! I ran into the same issue when I was designing the music page for my website, which I linked above. The problem is that the playerContext will only hold onto the currentTime for whichever media clip is loaded and doesn't retain state for other tracks. If you try to render a MediaProgressBar under each track of course you'll get some confusing UI.
I think the best solution (or at least what I came up with) is to only display the progress bar under the track that is currently playing, and to hide it if the track isn't playing. Alternatively, if you want to keep the progress bar rendered for a track that isn't playing, you can display a ProgressBar whose value is set to 0 for inactive tracks.

on the docs website we got this "main" footer player, how do we actually build such kind of footer player? I cannot find examples of this. But from what I understand it's just a simple player which is fixed to the bottom of the page with css?

Yeah, indeed it's just a simple player with some CSS to fix it to the bottom. Assuming your page is wrapped in a PlayerContextProvider, you can render a MediaPlayerControls from the @cassette/player package which will have a default look you can customize. Note that MediaPlayerControls will inherit the state of the surrounding media from the PlayerContextProvider but MediaPlayer would create its own playerContext, which probably wouldn't be what you would want.
~~
Does all that make sense? Let me know if you have more questions, and if it would be helpful I could try to apply what I'm talking about to the code you shared.

@Catsvilles do you have any more questions? Let me know if you'd like me to give you more concrete code examples.

@benwiley4000 First of all - thank you very much for your detailed reply yesterday!
Since yesterday I'm trying to put together what we've discussed but unfortunately, I run into errors from Cassette's core all the time. So at the moment I even tried to put together a player based on your personal website player, but you rely on Gatsby and I tried to drop it as a dependency, for example in a playlist:
import { withPrefix } from 'gatsby'
But once I remove withPrefix() from all the links I receive the following error:
Okay, that is funny and weird but once I ran 'npm start' to output the error to the console and copy/paste it here it actually started working lol So, I guess I will continue investigating for now. I don't want to bother you with my failures until I put together some solid investigation but I ran on some limitations all the time. Too bad this kind of functionality doesn't come out of the box in Cassette. So yeah, it would be nice if you would put simple example of multiple players that are synced to one main/footer player with the ability to change the progress there and there and so on. Maybe we could merge this to the Cattesse's core functionality somehow. Because I feel many users would like such functionality but there are not many libraries that provide it out of the box. (Actually, I kinda went through all the github reps to find such one and now my hard drive is full with installed players but none of them can help me with this).
So, I'll wait for now for you reply and examples and will go from there. Thank you!

Ah, yeah we should find an example which doesn't rely on Gatsby. That might make things less confusing!
On the todo list is to have more basic use case examples for folks trying to learn Cassette. I'll try to throw something together for you, and if you end up wanting to contribute anything else, that would be great! I'll try to get back with you in the next day.. if I forget, please remind me.

Hey just want to shout out and say I realize I never got back on this and I'm sorry. It's been hard to find time for open source lately but I do plan to follow up on this as well as the rest of the 2.0 release backlog. I'm hoping to make time in my schedule in the next month to catch up. And always feel free to email me if there are high-priority concerns (you can find my email if you open up a GitHub commit url and add .patch to the end of it).

@benwiley4000 Hi! thanks for getting back to me but this is already not actual to me as I moved completely from React and do things now in other lib and player, but I really hope this could be useful for someone! Well, at least you don't have to rush for sure anymore, anyway :) Feel free to close the issue if something :)


Fix var naming conflict with argparse and date parser

When hitting rate limits, the code block at the following lines looks at the ArgumentParser instance rather than datetime.parse, causing exceptions
https://github.com/nanos/mastodon_get_replies/blob/fc7d2d0bbc24ad185269072a009461966e0bc4c3/find_posts.py#L530
This change stops the naming conflict.

Thanks @nikdoof


Use of std::atomic can slow down multithreaded tests

Description
Having lots of REQUIRE in a multithreaded test is relatively slow due to the use of std::atomic.
I have a test that performs a lot of asserts, and is called in parallel. It's 240016891 REQUIRE statements. Without the REQUIRE, the test takes 0.37 seconds on my machine. When I add the REQUIRE, the test takes 8.05 seconds.
It seems that most of the slowdown comes from the use of std::atomic for the variable numAssertsCurrentTest_atomic. The problem is that in my case 12 threads basically block each other by continuously increasing the atomic, which leads to lots of cache invalidation for the other threads.
I've played a bit with the code, and have come up with a multi-lane implementation of atomic. This splits up the atomic into multiple atomics, each sitting on a different cache line, and each thread operates on a different atomic so they can't block each other. This speeds up the test from 8.05 seconds to 2.28 seconds on my machine.
Steps to reproduce
Create a test that spawns many threads, each calling REQUIRE in a tight loop.
Put this into doctest.h:
// Provides a multilane implementation of an atomic variable that supports add, sub, load, store.
// Instead of using a single atomic variable, this splits up into multiple counters, each sitting on a separate memory lane.
// This can reduce contention dramatically when many concurrent writes are performed.
template <typename T, size_t NumLanes = 32, size_t CacheLineSize = 64>
class MultiLaneAtomic {
    struct CacheLineAlignedAtomic {
        std::atomic<T> atomic{};
        std::array<uint8_t, CacheLineSize - sizeof(std::atomic<T>)> dummyData{};
    };
    std::array<CacheLineAlignedAtomic, NumLanes> mAtomics{};

public:
    MultiLaneAtomic(MultiLaneAtomic const&) = delete;
    MultiLaneAtomic(MultiLaneAtomic&&) = delete;
    auto operator=(MultiLaneAtomic const&) -> MultiLaneAtomic& = delete;
    auto operator=(MultiLaneAtomic&&) -> MultiLaneAtomic& = delete;

    MultiLaneAtomic() = default;
    ~MultiLaneAtomic() = default;

    auto operator++() noexcept -> T {
        return fetch_add(1) + 1;
    }

    auto operator++(int) noexcept -> T {
        return fetch_add(1);
    }

    auto fetch_add(T arg, std::memory_order order = std::memory_order_seq_cst) noexcept -> T {
        return myAtomic().fetch_add(arg, order);
    }

    auto fetch_sub(T arg, std::memory_order order = std::memory_order_seq_cst) noexcept -> T {
        return myAtomic().fetch_sub(arg, order);
    }

    operator T() const noexcept {
        return load();
    }

    auto load(std::memory_order order = std::memory_order_seq_cst) const noexcept -> T {
        auto result = T();
        for (auto const& c : mAtomics) {
            result += c.atomic.load(order);
        }
        return result;
    }

    auto operator=(T desired) noexcept -> T {
        store(desired);
        return desired;
    }

    void store(T desired, std::memory_order order = std::memory_order_seq_cst) noexcept {
        // first value becomes desired", all others become 0.
        for (auto& c : mAtomics) {
            c.atomic.store(desired, order);
            desired = {};
        }
    }

private:
    // Each thread has a different atomic that it operates on.
    // This is a bit tricky: laneCounter is a global static counter that goes up.
    // laneId is an ID that is unique to this. So each instance of MultiLaneAtomic in the same thread will have the same landId.
    // To support different number of lanes, we always calculate laneId % NumLanes.
    auto myAtomic() noexcept -> std::atomic<T>& {
        static auto laneCounter = std::atomic<size_t>();
        thread_local auto laneId = laneCounter.fetch_add(1);

        return mAtomics[laneId % NumLanes].atomic;
    }
};

Then, replace the line
        std::atomic<int> numAssertsCurrentTest_atomic;

with
        MultiLaneAtomic<int> numAssertsCurrentTest_atomic;

The test will run significantly faster with the MultiLaneAtomic<int>.
If you think this is worthwhile, I could create a pull request for this.

doctest version: 2.4.1
Operating System: Linux 5.9.11-3-MANJARO
Compiler+version: clang++ 11.0.0

Here is a reproducer:
#include <doctest.h>

#include <thread>
#include <vector>

// 4.364 seconds: std::atomic<int> numAssertsFailedCurrentTest_atomic
// 0.755 seconds: MultiLaneAtomic<int> numAssertsCurrentTest_atomic
TEST_CASE("MultiLaneAtomic") {
    static constexpr auto numIters = size_t(10000000);

    auto threads = std::vector<std::thread>();
    for (size_t i = 0; i < std::thread::hardware_concurrency(); ++i) {
        threads.emplace_back([] {
            for (size_t it = 0; it < numIters; ++it) {
                REQUIRE(it < numIters);
            }
        });
    }
    for (auto& thread : threads) {
        thread.join();
    }
}

It is my understanding that this solution would work even if there are more threads/cores than the 32 lanes (by default) - in every CacheLineAlignedAtomic instance there is a std::atomic so a few threads can use the same atomic due to the modulo addressing in myAtomic() - is that correct?
Regarding the timing - the example code ran on my machine for 4.5 seconds vs 3.2 seconds with this atomic class, so there was some gain indeed.
It also seems to slow down the same test when done serially (without threads) by about 10% (no concurrency) - nothing is ever free.
Maybe the 3.5-to-1 difference you are observing is more exaggerated because there are more cores/threads on your machine? I tested with 12 cores - maybe you have a lot more? If that's the case (bigger payoff for higher multi-threadedness) maybe it's worth going forward with a PR - even if everyone has to pay the 10% increase when not using concurrency.
I think the lanes should be a compile-time define so that it's configurable (something like DOCTEST_NUM_ATOMIC_THREAD_LANES), and the same goes for the cache line size (DOCTEST_CACHE_LINE_SIZE?) - those should go next to the #ifndef DOCTEST_THREAD_LOCAL in the same fashion - so that they are overridable if defined.
You can put this new atomic class right above struct ContextState. Also, it should only use C++11 and DOCTEST_THREAD_LOCAL instead of thread_local.

It is my understanding that this solution would work even if there are more threads/cores than the 32 lanes (by default) - in every CacheLineAlignedAtomic instance there is a std::atomic so a few threads can use the same atomic due to the modulo addressing in myAtomic() - is that correct?

Exactly, that's the idea. The goal is to spread the threads up between the lanes, and if some threads use the same lane it's not a problem, just a bit of a slowdown between these threads.
What compiler are you using? I saw on godbolt that visual studio seems to produce much more code than g++ or clang++ does. So it might not be as good on windows. I have an Intel i7-8700 with 6 cores/12 threads, and used clang++ with -O3 -march=native for this benchmark. I locked the CPU to a fixed frequency for more stable results.

Whoops - rookie mistake - wasn't specifying CMAKE_BUILD_TYPE=Release.
Just tested both with clang 9 and gcc 9 on ubuntu 19.10 and now I see the same 3x increase - this does indeed seem worthwhile!

merged the PR - closing this issue as well


Fix to unwrap safety like as SESAME2

ref: https://github.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/issues/52#issuecomment-1820334953
Overviews

Fix to call delegate only in case of it can create history data correctly.

Remarks
For SESAME2, it has already checked whether it can create  history data.
https://github.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/blob/master/SesameSDK/Shared/Ble/SesameOS2/Sesame2/CHSesame2Device%2BHistory.swift#L70

The issue mentioned above has been resolved, please refer to the code in the master branch.


Add support for ListingCreated events in the listener

Backend changes to deal with #345
Rework of the approach in draft PR #356 (abandoned).

Add new endpoint /shop/wallet that allows the front-end to associate a wallet address with a shop.
Update the listener's logic to process ListingCreated events. It checks if the transaction was submitted by a wallet associated with a dshop. If it is, it updates the shop's listingId in the DB.

@nick ok if I merge this to master? This should be backward compatible and not cause any breakage in prod in case it gets deployed. Also, if the UI ends up needing some additional back-end changes, I'm happy to do so in a separate PR.

Sounds good. One more thing I realized is that we'd need to update the config.json with the listingId too...

Ah yes, good point re updating config.json - will add that before merging...

Added logic to update the shop's config.json and updated the unit tests.
Going to merge this in now.


Firebase.Core.Init starts two times

Sorry for your time!
I wanted to use Admob in the Project. I use a Banner in a SubPage. After build completes, I can see in the log, that Firebase initialized successfully:

Firebase Configuring...

and then

Firebase Configure Ready!

But when I enter the Subpage, the app crashes with this error:

Terminating app due to uncaught exception 'com.firebase.core', reason: 'Default app has already been configured.'

And I can see, that it is trying to start:

Firebase Configuring...

What is wrong there? Anyone had that issue? :/

Yes. Actually @shnupta just had a similar issue. I am looking into it

Thank you very much!!! :)

Here is my stack trace for the similar error I'm getting @LuisRodriguezLD
*** First throw call stack:
(
	0   CoreFoundation                      0x00000001098971e6 __exceptionPreprocess + 294
	1   libobjc.A.dylib                     0x0000000104e78031 objc_exception_throw + 48
	2   CoreFoundation                      0x000000010990c975 +[NSException raise:format:] + 197
	3   QuickLaps                           0x0000000102391ce4 +[FIRAuth auth] + 116
	4   QuickLaps                           0x000000010237214f _ZZN1g8Firebase14Authentication11AuthService11ForeignInitEvENK3$_0clEv + 31
	5   QuickLaps                           0x0000000102371ad7 _ZN1g8Firebase14Authentication11AuthService11ForeignInitEv + 39
	6   QuickLaps                           0x0000000102371b60 _ZN1g8Firebase14Authentication11AuthService4InitEv + 48
	7   QuickLaps                           0x0000000102376d42 _ZN1g8Firebase14Authentication2JS10AuthModule6ctor_3Ev + 162
	8   QuickLaps                           0x0000000102377752 _ZN1g8Firebase14Authentication2JS10AuthModule4New3Ev + 34
	9   QuickLaps                           0x0000000101f4c204 _ZN1g8MainView12InitializeUXEv + 916
	10  QuickLaps                           0x0000000101f4be68 _ZN1g8MainView6ctor_4Ev + 40
	11  QuickLaps                           0x0000000101f4dd62 _ZN1g8MainView4New2Ev + 34
	12  QuickLaps                           0x0000000101ec391d _Z9uStartAppv + 13
	13  QuickLaps                           0x0000000102016436 _ZN1g3Uno8Platform7CoreApp5StartEv + 262
	14  QuickLaps                           0x0000000101ee79da _ZZ55-[uContext application:willFinishLaunchingWithOptions:]ENK3$_0clEv + 26
	15  QuickLaps                           0x0000000101ee7936 -[uContext application:willFinishLaunchingWithOptions:] + 70
	16  QuickLaps                           0x0000000101ee63ce -[uAppDelegate application:willFinishLaunchingWithOptions:] + 206
	17  UIKit                               0x0000000106d9a689 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 164
	18  UIKit                               0x0000000106d9c172 -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 4123
	19  UIKit                               0x0000000106da15cb -[UIApplication _runWithMainScene:transitionContext:completion:] + 1677
	20  UIKit                               0x0000000107163f7e __111-[__UICanvasLifecycleMonitor_Compatability _scheduleFirstCommitForScene:transition:firstActivation:completion:]_block_invoke + 866
	21  UIKit                               0x0000000107536a39 +[_UICanvas _enqueuePostSettingUpdateTransactionBlock:] + 153
	22  UIKit                               0x0000000107163bba -[__UICanvasLifecycleMonitor_Compatability _scheduleFirstCommitForScene:transition:firstActivation:completion:] + 236
	23  UIKit                               0x00000001071643db -[__UICanvasLifecycleMonitor_Compatability activateEventsOnly:withContext:completion:] + 675
	24  UIKit                               0x0000000107ad5614 __82-[_UIApplicationCanvas _transitionLifecycleStateWithTransitionContext:completion:]_block_invoke + 299
	25  UIKit                               0x0000000107ad54ae -[_UIApplicationCanvas _transitionLifecycleStateWithTransitionContext:completion:] + 433
	26  UIKit                               0x00000001077b975d __125-[_UICanvasLifecycleSettingsDiffAction performActionsForCanvas:withUpdatedScene:settingsDiff:fromSettings:transitionContext:]_block_invoke + 221
	27  UIKit                               0x00000001079b44b7 _performActionsWithDelayForTransitionContext + 100
	28  UIKit                               0x00000001077b9627 -[_UICanvasLifecycleSettingsDiffAction performActionsForCanvas:withUpdatedScene:settingsDiff:fromSettings:transitionContext:] + 223
	29  UIKit                               0x00000001075360e0 -[_UICanvas scene:didUpdateWithDiff:transitionContext:completion:] + 392
	30  UIKit                               0x0000000106d9feac -[UIApplication workspace:didCreateScene:withTransitionContext:completion:] + 515
	31  UIKit                               0x0000000107372bcb -[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:] + 361
	32  FrontBoardServices                  0x000000010f0162f3 -[FBSSceneImpl _didCreateWithTransitionContext:completion:] + 331
	33  FrontBoardServices                  0x000000010f01ecfa __56-[FBSWorkspace client:handleCreateScene:withCompletion:]_block_invoke_2 + 225
	34  libdispatch.dylib                   0x000000010bab67ec _dispatch_client_callout + 8
	35  libdispatch.dylib                   0x000000010babbdb8 _dispatch_block_invoke_direct + 592
	36  FrontBoardServices                  0x000000010f04a470 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 24
	37  FrontBoardServices                  0x000000010f04a12e -[FBSSerialQueue _performNext] + 439
	38  FrontBoardServices                  0x000000010f04a68e -[FBSSerialQueue _performNextFromRunLoopSource] + 45
	39  CoreFoundation                      0x0000000109839bb1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
	40  CoreFoundation                      0x000000010981e4af __CFRunLoopDoSources0 + 271
	41  CoreFoundation                      0x000000010981da6f __CFRunLoopRun + 1263
	42  CoreFoundation                      0x000000010981d30b CFRunLoopRunSpecific + 635
	43  GraphicsServices                    0x000000010e2d5a73 GSEventRunModal + 62
	44  UIKit                               0x0000000106da3057 UIApplicationMain + 159
	45  QuickLaps                           0x0000000101ee68b7 main + 119
	46  libdyld.dylib                       0x000000010bb33955 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

Please check out #94 and give it a go

It seems to be working! :)
But I can't be sure, because I have other errors with my Bundle ID.. but I think this should be a small thing xD
Thanks for your help! (=

Happy to help, @shnupta what do you think?

Just tested #94 and working good !

This might be another Error, but it appears since i changed to your suggestion :/ do you know what it could be?

2018-07-31 21:23:03.545014+0200 JsonTestApp[16840:6103650] Firebase Configuring...
2018-07-31 21:23:03.545527+0200 JsonTestApp[16840:6103702] 5.4.1 - [Firebase/Core][I-COR000003] The default Firebase app has not yet been configured. Add [FIRApp configure]; (FirebaseApp.configure() in Swift) to your application initialization. Read more: https://goo.gl/ctyzm8.
2018-07-31 21:23:03.637864+0200 JsonTestApp[16840:6103650] Firebase Configure Ready!

Yes of course. To make sure it only fires once Firebase checks if the app has been configured (this is the first thing that runs so it returns The default Firebase app has not yet been configured)
After that, well it configures it and you are ready to go.
It's perfectly normal. Don't worry.

Okay Great :)
Its just because I'm searching the reason why the ad doesn't show up on iOS xD
I need to search and try a bit. (Maybe I need your help again, if I don't succeed x) )
But a big compliment for your great Support :)

Happy to help. If it was working but stopped please let me know.


Feldhausen's random library implementation and test

🗣 Description
Configured lcgit install through pip using github location because of lack of PyPl version. Added pytest testing library. Created test folder within controller/api for test creation. Added example test file and lcgit (random library) test file.
Implemented sorting method for separating a group of targets into n groups for different deception campaigns.
💭 Motivation and Context
Base implementation of lcgit library for testing and example purposes. Implementation of sorting method described in the Continuous Phishing Assessment Plan document.
🧪 Testing
Self contained tests.
🚥 Types of Changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ x ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (causes existing functionality to change)

✅ Checklist

[ x ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ x ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ x ] All new and existing tests passed.

I just realized that lcgit isn't published up to PyPI when reviewing this PR.  I'll try to fix that up and get you a PR with the changes to setup.py.


About the [balance]

Hi, excellent work!
But, i am a little confused about the [balance], which is used for oversample instance？
And why we need oversample?
https://github.com/crux82/ganbert/blob/32e992281229ac6678350f338480cd29dacbf578/ganbert.py#L280

Hi
As written in the paper, we replicated the labeled examples of a logarithmic factor. This guarantees the presence of some labeled instances in each batch to avoid divergences due to the unsupervised component of the adversarial training.
Hope it helps.
Bests
Danilo


Rename tax loss directory, currently errors in gen script

The name isn't the reason why it errors. Not sure this is necessary yet.

Sent a CL for the script error. Merging this for the sake of consistency in naming.


account page: allow sorting AENS names by expiration

Please describe the problem that your request should resolve.
in the current default, AENS names on the account page are sorted by name and there is no option to change that. this is kind of an issue for accounts that own a lot AENS names. it's hard to see which names expire next.
Describe the solution you'd like
it would be awesome being able to sort those names by expiration
Is it already possible to achieve the same outcome in any other way? If so, how?
no

example account that owns a lot of names right now:

https://aescan.io/accounts/ak_Y8CBqTg5RasS8YMf9ijXM2cNfBZNQ6co1V6bEjRYPqiNRytEr

note: many names expire soon, so it might be less in the near future 😅


Use SQL queries instead of manipulating JS objects

Done for  :

Checking whether a locale is activated for a project (no more looping through all locales in project)

Codecov Report

Merging #136 into develop will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           develop   #136   +/-   ##
======================================
  Coverage       60%    60%
======================================
  Files           10     10
  Lines           55     55
  Branches         6      6
======================================
  Hits            33     33
  Misses          22     22

Continue to review full report at Codecov.

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


No logs on Android

$ flutter doctor summary -v
[✓] Flutter (Channel stable, v1.12.13+hotfix.8, on Linux, locale en_US.UTF-8)
    • Flutter version 1.12.13+hotfix.8 at /home/nolan/opt/flutter
    • Framework revision 0b8abb4724 (3 weeks ago), 2020-02-11 11:44:36 -0800
    • Engine revision e1e6ced81d
    • Dart version 2.7.0
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /home/nolan/opt/android
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 28.0.3
    • ANDROID_HOME = /home/nolan/opt/android
    • Java binary at: /home/nolan/.asdf/installs/java/adopt-openjdk-8u232-b09_openj9-0.17.0_large-heap/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_232-b09)
    • All Android licenses accepted.
[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/setup/#android-setup for detailed instructions).
[✓] Connected device (1 available)
    • BV8000Pro • 9DBMS4Q8LVEI7DHY • android-arm64 • Android 7.0 (API 24)
! Doctor found issues in 1 category.

I don't use Android Studio, so no problems are relevant.
I used to get lots of debug logging in response to flutter run. Additionally, print statements used to output to my console. Now, none of that works. Here is the output of flutter run on a brand new app created with flutter create hello:
Launching lib/main.dart on BV8000Pro in debug mode...
Running Gradle task 'assembleDebug'...
Running Gradle task 'assembleDebug'... Done                         1.9s
✓ Built build/app/outputs/apk/debug/app-debug.apk.

ANd that's it. No debug logs on screen touch/redraw. No print output. I used to be able to force hot reloads, but that doesn't seem to work either.
I can't think of a specific change I've made to my Flutter installation recently, other than flutter upgrade. I did recently start using VSCode, but it isn't even running now. What you're seeing is directly from flutter run on the Linux console. The app is also running, and to the best of my knowledge, my pre-existing Flutter apps work fine. They just refuse to log anything, or to accept commands on the flutter run instance.

i'm with the same problem with one device, but i've tried with another device and it worked fine. Try another device for debug logs.

Unfortunately I just have the one device. I'd really like to figure out
what may have happened here.

Hi @ndarilek
can you please provide
your flutter run --verbose
while running some the "hello world app"
adding a simple print statement
  Widget build(BuildContext context) {
print('hey');
    return Scaffold(

Thank you

Hi @ndarilek
Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore
reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any
more information for us; we will reopen it right away!
Thanks for your contribution.