How can i scrollTo Bottom

ScrollView how can i scroll to the bottom

Compute the y offset from the content size and viewport size, and call scrollTo.

but i can i get viewport size ?

Look in the source code to learn how the UIManager.measureX methods are used. You can measure the scroll view and its content view. If you are using a ListView you will need to write your own ListView that measures the height of every single row to compute the content size.

Where do you call the scrollTo method?

@bdeezz, something like:
render() {
  return <ScrollView ref="scrollView" />;
}

onSomeEvent() {
  this.refs.scrollView.scrollTo(0); // will scroll to the top at y-position 0
}

@wangzhe1995  Scroll to bottom of ScrollView in React Native see this .

I came up with this solution.

there is a component for listView to scroll to top, hope it is uesful to someone: scrolltotop

One way is to perform a transform on the ScrollView and the inner elements.
This allows you to to use the  scrollTo(0) function
`
<View ref="container"
style={{transform: [{rotate: '180deg'}] }} >

`

Try this out: https://github.com/fritx/react-native-auto-scroll

Try this:
<ScrollView ref="scrollView"
onContentSizeChange={(width,height) => this.refs.scrollView.scrollTo({y:height})}>

@VladPolynko this seems to work fine for me on Android, but on iOS it scrolls below the ScrollView content (as if there was no lower boundary for the ScrollView) (RN 0.38.0)

Same issue than @septemptus

Same issue as @septemptus
ScrollView in iOS has no lower boundary and gives a bigger height.
My shortcut is to give a manual offset for iOS-only.

https://facebook.github.io/react-native/docs/scrollview.html#scrolltoend

scrolltoend method still scrolls past the end of the ScrollView on IOS.

This solved it for me...
https://stackoverflow.com/questions/29310553/is-it-possible-to-keep-a-scrollview-scrolled-to-the-bottom

<ScrollView ref={ref => this.scrollView = ref}>
onSomeEvent = () => {
this.scrollView.scrollTo({ x: 0});
}
This worksssss


Footer Column Style Change

New Mockup
Please check assets/css/global.css, design-assets folder images, and figma files for updated style guides. Any new pull request should use the updated color, spacing, and sizing variables.
No Bootstrap or jQuery
Please refrain from adding Bootstrap or jQuery to the site. These pr's will be closed. They overwrite global styles. Vanilla CSS and JS is way better now anyways 😊
New Task:
What is the task
The footer does not look good in the Column style. I would like to change it.
Who is the task for?

[x] I created this task for me to complete, I will create a PR soon.
[ ] I created this task for someone else to claim.
[ ] I think this is a task that multiple people can do

Confirm all of the following:

[x] I have looked at all the issues currently available and this does not exist or overlap with another ticket

⚠ PLEASE ONLY SUBMIT A PR FOR THIS TASK IF THIS TASK WAS AVAILABLE FOR YOU TO CLAIM

I am working on a PR for this

Actually, the column style is according to the mockup this would overwrite the correct style.


fix(other): update menu links to open in new tab

Description
This change adds target="_blank" rel="noopener noreferrer" to all menu item links to ensure they open in a new tab without erasing the state of Caravan in the current tab.
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Does this PR fixes open issues?

[x] Yes
[ ] No

https://github.com/unchained-capital/caravan/issues/102

On further discussion with an Unchained team member, I understand this is purposeful and am working to clarifying the issue I saw. Closing.


Loading svg on build from file

Don't know if that is what you had in mind, but this loads the svg from an external file.
It isn't perfect either, as the used plugin requires a fixed string as input. I could maybe rewrite the plugin to improve this functionality further.

Seems quite nice. The build currently fails since the package-lock.json wasn't updated accordingly with the package.json. Would be great if you could quickly change that.
(Side note: The new .svg can probably only be sensibly edited in Adobe Illustrator or similar; Inkscape doesn't support the CSS variable spec yet. But it's still nice to move the markup into a separate file IMO.)

As the svg is still fully included in the final output, I can investigate the possibility to style svg parts on their own with css. Maybe those variables can be moved to a separate css file.

I think that might complicate things more than it would help. I doubt we'll edit the logo all that often, so that's not that big of a problem right now. If you agree I'll merge this in the current state.

It certainly would add more files to the repo. As far as the logo doesn't change every other day I would leave it be for now.


Validate eve.json output /v2

Validates eve.json output using JSON schema.
Link to redmine ticket: https://redmine.openinfosecfoundation.org/issues/1369
Changes from last PR :

Changed the format of the output message
Added a -v command line argument
Included the (checked, passed, failed) eve.json file count summary at the end

I have a few more changes I'd like to see.. Sorry, kind of defining the use-cases as we go.
If an argument is provided, for example: check-eve /path/to/eve.json, this script should just that single file.  But if that argument is a directory, then it should use that directory as the topdir.  If no provided, the current behaviour is good. This will allow us to use this script in other contexts outside of the suricata-verify repo.

I have a few more changes I'd like to see.. Sorry, kind of defining the use-cases as we go.
If an argument is provided, for example: check-eve /path/to/eve.json, this script should just that single file. But if that argument is a directory, then it should use that directory as the topdir. If no provided, the current behaviour is good. This will allow us to use this script in other contexts outside of the suricata-verify repo.

Thanks for the feedback on the changes. It's easier for me this way, since we're increasing complexity as we go. 👍

Changes continued in #431


Update to CommonMark spec 0.24

From the diff between 0.22 and 0.23:

[x] header -> heading
[x] horizontal rule -> thematic break
[x] HtmlTag -> HtmlInline (to follow commonmark.js)
[x] ATX heading: must be space (check regex)
[x] Entity or numeric cahracter references in raw HTML
[x] No more optional whitespace after link label

From the diff between 0.23 and 0.24:

[x] Update spec example parsing
[x] Headings with multiple lines
[x] Parentheses inside the link destination may be escaped
[x] No spaces in in link destination (even with <>)
[x] Link scheme whitelist removed (link)

Released 0.4.0 that includes these changes.


[release] Release new minor version

Release until openwisp-notifications 0.3 and openwisp-controller 0.8 are released, clean up .travis.yml and replace markdown in requirements-tests.txt with openwisp-notifications.

Closed by https://github.com/openwisp/openwisp-network-topology/commit/e08cfdb8515973c70b50610f29db6ea594de2440


Out-GridView: Is there a way to force single item selection when -PassThru is used?

Summary of the new feature / enhancement
If not consider this a feature request for such a switch?  I have use cases where I want to force my users to only be able to select a single row displayed in the Out-GridView window.
Proposed technical implementation details (optional)
No response

Get-ChildItem | Out-GridView -OutputMode Single

Thanks @MartinGC94! That's exactly what I needed!


Device - name ='NoneType' None

Hey
For starters this project is brilliant, only way I have been able to control my Neewer 660 Pro's from Win 11.
I had to teach myself Python today and also how to use PyCharm as I couldn't get the script to run, so please feel free to shoot me down if this issue is a me problem.
Originally I thought it was related to the depreciated asyncio.get_event_loop() warnings but after placing in a few debugs I found that the findDevices() discover() would come back with Unknown -> 'None' (AttributeError: 'NoneType' object has no attribute 'index') error for the d.name.index("NEEWER").

I'm not sure if its a Winn 11 issue or I haven't loaded something correctly, however I added a few debugs and found that some of the Bluetooth devices were coming back with a device.name 'None' as below which was causing the issue.

I added a very basic checks to see if the device name was 'None' and to skip if it was detected which worked for me. (I am by no way a programmer and I'm sure this could be done with a oneliner)

If this isn't a relevant issue please just close.
Now to work out how to add to the Stream Deck :/
Thank you again for the hard work you have put into creating this script....keep up the amazing work!
Jylze

Oh and final code for me was just two if statements to check for None : if str(d.name) != "None":

Hi @Jylze!  Thanks for saying so, and thanks for the debug information!  I haven't used Win11 yet, and I also haven't used PyCharm myself, but I want to check that out, as it definitely looks more in-depth for debugging than VS Code.  For instance, I don't get any asyncio errors, but that might just be due to my test environment (it makes sense after seeing that that I should check first to see if an asyncio loop is running first before "asking" it which one is, which is why that error is being thrown I'm guessing, but VS Code and Python itself just skip past that part when debugging).  As far as the name.index thing, that's one of the ways that I found to test to see if a substring has the word "Neewer" in it, but this is the first time I've heard of Bleak not returning a "name" string - .index only fails if the result is not a string, but Bleak should always return a string from any result it finds (which it apparently isn't if it's coming back as NoneType here...)  That might be a Windows 11 anomaly, but it's worth checking into.
You could feasibly also do a one line check (I'm fairly certain, I don't have any lights with me to test it with me at the moment, but will later on) by just adding the
if str(d.name) != "None": line before the try block, and then indenting the try block, so the whole check block would be:
for d in devices: # go through all of the devices Bleak just found
        if str(d.name) != "None": # check to make sure Bleak returns a valid string
            try:
                d.name.index("NEEWER") # try to see if the current device has the name "NEEWER" in it
            except ValueError: # if the name doesn't have "NEEWER" in it, then check to see if it's whitelisted
                if d.address in whiteListedMACs: # if the MAC address is in the list of whitelisted addresses, add this device anyway
                    printDebugString("Matching whitelisted address found - " + returnMACname() + " " + d.address + ", adding to the list")
                    currentScan.append(d)
            else:
                currentScan.append(d) # and if it finds the phrase, add it to this session's available lights

OK, @Jylze - I've reworked this section a bit for the latest commit - NeewerLite-Python first checks to see if the current device being checked against is "whitelisted", and if not, it then checks to see if it has a proper string from Bleak, and if it does, then it checks to see if it has "NEEWER" in the title.  More streamlined this way, and it should work where the last version you tried originally did not.

Amazing, works perfectly. Thanks you for the quick reply @taburineagle :)
I'm quite impressed with PyCharm with its inline debugging, mind you its been over 9 years since I have done any coding, but it was quick to pickup and use.


reuse of access tokens

https://github.com/belgif/rest-security/pull/4 forbids reuse of a token:

The resource server SHOULD rely on the unique identifier provided by the "jti" (JWT identifier) claim to enforce the non-reuse of access tokens.
Indeed, access tokens MUST be short-lived (lifetime should not exceed a few minutes) and used at most once.

What is the rationale behind this? Reuse of access tokens seems to be a common industry practice.
Some considerations I can think of:

blocking reuse of tokens makes it harder for an attacker to abuse intercepted tokens. TLS should prevent this however.
allowing reuse is more efficient because it doesn't require a client to call the authorization server on each request. When using token introspect, the introspect response could be cached as well by the resource server.
no token reuse for authorization code flow, probably means additional redirects for web applications (?), disrupting the user experience

I'll put this point on the agenda with SocSec/Smals security experts

@pvdbosch,
That's a good question.
JWTs are self-contained and thus - by design - remain valid for their defined lifetime and cannot be invalidated/revoked once issued, since no validation request is made to the issuing authorization server (unless each and every token is validated on the authorization server, which is however quite silly and counterproductive in most - but not all - scenarios).
This makes them very vulnerable to replay attacks.
While TLS protects against MITM, making it difficult to intercept valid tokens for replay attacks, even in 2021 2022, it's unfortunately not that uncommon to see things like unencrypted "internal traffic" or token expiration set to a ridiculously high value by default (usually 1 hour if not more).
Therefore, it is obvious that additional countermeasures must be put in place (as described in the guide).
Fortunately, smart people have already thought of this scenario, and section 4.1.7 of RFC 7519, introduces the jti (JWT ID) claim, i.e., a unique identifier for the token, specifically to prevent the JWT from being replayed.
If we add to this the fact that we impose the use of the TLS protocol in the guide and that we recommend a fairly short expiration time (from 30 seconds to a few minutes maximum, with a tolerance of a few seconds - no more than 30 - in the code to account for possible clock skew), we end up with several defensive mechanisms in place to protect against replay attacks (defense-in-depth approach).
This approach has, of course, obvious drawbacks that must be clearly understood.
First, it means storing tokens that have already been used, thus a state. In my opinion, it is better to move the state to a (distributed) cache or key value store to keep most services stateless.
However, a client that stores an access token for an hour or so can also be considered "stateful." Moreover, that state is even riskier because there is a good chance that the token is not stored in a secure fashion.
Second, one might even consider this approach to be inefficient, as it implies that a new access token must be issued for each request, and thus additional calls on the authorization server.
Nevertheless, while the adverse impact on performance is undeniable, it remains somewhat limited.
Indeed, in scenarios not involving a user, the client credentials grant should be used and, as per section 4.4.3 of RFC 6749, a refresh token should not be returned.
In scenarios involving a user, such as browser-based single page applications, the PKCE grant (extension to the authorization code grant) should be used. It involves access tokens and refresh tokens passed over the backchannel (never through the browser).
Since the refresh tokens must also be single-use, the number of requests to the authorization server is indeed doubled (the user experience is in principle not impacted as long as the authorization server is not overloaded and requests are processed in a timely manner).
However, if you are really so worried about this, I assume that you are at a point where performance is of utmost importance and cannot be further improved by, for instance, optimizing the code or having a service mesh for east-west communication.
In conclusion, I do believe that token reuse should be prohibited.
At the same time, I am also convinced that if you understand the consequences of your choices (ask yourself: are you willing to sacrifice security for the sake of performance, scalability and statelessness?) when defining your architecture, the disadvantages of this approach are absolutely negligible, especially if you consider the kind of data we are dealing with...
I trust this rather long explanation answers your question. In any case, we can discuss this topic in more detail at our next meeting.

I agree there's an additional measure of security, though I'm not convinced yet that its costs (performance, complexity) justify its use always; maybe only for data classification level 3 or 4. Though in those cases, if you're using JWS on requests with an expiration time, it would also protect against replay attacks.
For data classification levels 1 or 2, it could be recommended to limit the validity period of the access token.
I guess if the client could leak access tokens, an attack vector for stealing a refresh token still remains; regardless of the use of one-time access tokens.


Make helidon-car-booking-portable-ext

Adding a script and configuration to be able to test locally without any external resource

Code done


Incorrect processing of keybindings consisting of a combination of modifiers without a key

🐛 Bug
napari incorrectly handles keybindings consisting of a combination of modifiers without a key such as Control-Alt. If you try to add a callback on that combination, it doesn't work.
The issue comes from the app-model package in two different ways:

It cannot correctly and consistently parse a combination of modifiers without a key from a string. For example, Ctrl-Alt and Alt-Ctrl produce two different keybindings (https://github.com/pyapp-kit/app-model/blob/332d59b06e5f85e8c39f8e72810b2ad6a344f6a0/src/app_model/types/_keys/_keybindings.py#L236-L270)
When Ctrl-Alt comes from the system it produces two different keybindings depending on which key is pressed first:

SimpleKeyBinding(ctrl=True, alt=True, key=<KeyCode.Alt>) if Ctrl precedes Alt.
SimpleKeyBinding(ctrl=False, alt=True, key=<KeyCode.Ctrl>) if Alt precedes Ctrl.

You may not believe it, however this issue can be overcome by using some hacky key strings. To reliable handle, for example, the Control-Alt combination, you need to bind your callback to the following 2 combinations:
bind_key('Control-Alt-Alt', callback)
bind_key('Alt-Control', callback)

Remember, that the order is very important! Control-Alt instead of Alt-Control doesn't work 😄 .
To Reproduce
Steps to reproduce the behavior:

Try to bind your callback with this: @napari.Viewer.bind_key('Control-Alt').
It doesn't work.

cc @tlambert03

I'm not sure I see that as a bug... for app-model, I'm not sure I would want to support key-modifiers as the keys themselves (ie. I don't think ctrl-alt should be allowed).  If i'll leave it up to napari @napari/core-devs as to whether you want to support it within napari.  If you do, and if the only way you can accomplish it is with a change in app-model, let me know and we can discuss how best to accomplish it.

@tlambert03 I can't see the difference between just Ctrl and Ctrl-Alt, why the former is allowed and doesn't cause any issues while the latter should not be allowed?

sorry, to be clear, I don't think any modifier-only combos should be allowed.  Neither ctrl nor ctrl-alt on their own should be considered "complete".  A non-modifier key should be required

I think that kind of behavior is unacceptable for software that tries to be useful for annotation as there are many possible ways to effectively utilize modifiers keys. If you look at similar software as CVAT they have some useful hotkeys that are bind to only modifiers.
By the way, I don't see any problems here. When I bind just Ctrl it doesn't cause any issue with the Ctrl-Z combination in napari. Even if I bind Ctrl-Alt using the hacky method described in the first message, it works well with other keybindings. If it is possible to make it work using hacky key combinations, why can't it be implemented natively?

I'm actually in the process of writing a NAP about what is in/out of scope for keybinding handling / valid keybindings. In it, I was going to propose that keybindings that only consist of multiple modifier only keys would be invalid (e.g. Shift by itself is allowed but Shift+Alt is not), for this exact reason.

cool sounds good 👍 ... lemme know if you need app-model support (or, of course, feel free to open any PRs that are necessary)

my question for you (and other core devs) is more of if the NAP should be informational/convesation-oriented or more of an opinionated proposal. which do you think would be more appropriate?

@ksofiyuk my initial reaction is the same as @tlambert03 's here - modifier only key combos don't quite feel right
Thinking about it a little more though - if you wanted to implement some custom mouse behaviour which depended on some Mode, the mode could be set by the modifiers and a separate mouse callback would depend on that mode... if there isn't a way to get access to keyboard modifiers during mouse events then I may be in support of this as this seems a valid use case

the above would be better implemented by adding some contexts around whether or not modifiers are pressed though

which do you think would be more appropriate?

I'm not sure the distinction matters all that much.  given the amount of time you've spent thinking about it.  I suspect everyone would be very happy to hear your opinion (and of course, the conversation will inevitably follow)

mouse events

yeah, I agree that modifier-mouse events are definitely useful.  one way or the other, that should be possible

modifier keys are available during mouse callbacks so the above point is moot
https://github.com/napari-threedee/napari-threedee/blob/a7ffcc4e9ca9f34c5d9147c85b45f30f7332216b/src/napari_threedee/utils/mouse_callbacks.py#L22-L24

I view using individual modifier keys as a way to enable modes (e.g. hold alt and the GUI/mouse cursor changes) would be useful but having multiple modifiers with no base key would be too confusing and add additional complexity to the backend logic without bringing much value

@ksofiyuk I'd be curious to hear about your specific use case so I have more context on what value this would add.

@kne42 You can use individual modifiers in other than just mouse mode scenarios. For example, I bind Shift to make a labels layer invisible while you hold it, and make it visible again when you release it (you can inspect that a mask is drawn correctly as the mask itself covers the original image). It's really handy for me and for other people that I work with as the Shift is a big key that many people can automatically find and press without thinking, which is very important when it comes to providing efficient annotation UI. You also can apply some temporary visual transformations on Shift/Ctrl/Alt when you hold them and so on.
The biggest advantage of these keys that they are much easier to locate and remember for many people than usual keys like A, B, etc. So, I strongly against removing individual modifiers from binding.

i think binding single modifiers was still within @kne42's proposal, do you have a strong opinion on binding multiple modifiers too?

I usually bind Shift, but I also wanted to add some additional functionality to Ctrl-Alt as it is much harder to trigger that combination accidentally, because Ctrl can be triggered when you use Ctrl-Z and Alt can be triggered when you switch between apps using Alt-Tab. In that sense, 'Ctrl-Alt` looks like a safe combination to me that can be used for some additional visual modes.
@alisterburt I didn't know that mouse events provide the status of modifier keys, it's really great if it works - I will test it, because I was also thinking about binding some mouse move events only when you hold Ctrl-Alt and so on.

@tlambert03  I'd say that in the sake of efficiency during annotating I'd rather abandon any complex combinations except for Ctrl-Z. Usually you only need to bind up to 5 different actions that you constantly repeat hundreds of times during annotating, in such scenarios having combinations like Ctrl-Shift-T (toggle the theme), Ctrl-Shift-Alt (show hotkeys) is totally unreasonable because they are very rare actions that can be accessed through the menu bar. Most people never use them or use once in a several hours session.

Ctrl can be triggered when you use Ctrl-Z and Alt can be triggered when you switch between apps using Alt-Tab

this is the general reasoning behind why I wanted to make modifier keys bindable to on-release only, but I might be open to the idea of binding them to on-press as well provided that it blocked other keybindings (e.g. if you have a Ctrl keybinding it would disable the Ctrl+Z keybinding), but only settable intentionally by the user and not plugin devs

another way of approaching this would be to require a double tap (e.g. Shift Shift), which it looks like vscode may do from my perusing of their code, although it would add an additional keypress so it might not be very useful

this is the general reasoning behind why I wanted to make modifier keys bindable to on-release only

If you did that, you'd make much scenario of using these keys for visual modes broken. I'd rather tolerate that when I press Ctrl-Z and some visual transformation may accidentally apply for 0.1 sec then to remove the on-press event.
The thing that I can't understand, why you wanted to remove it rather than keep it. If someone binds something to Ctrl and it can be triggered by Ctrl-Z, it is responsibility of a person who does it. If they do it, it means they do it intentionally. Why consciously reduce the possible functionality? Especially, when napari is not a ready-to-go tool, it is like a framework that people who know how to code can customize for their needs.

one more potential approach I want to put out there is the possibility of having the on-press only trigger after a certain time if there are conflicts (e.g. with Ctrl+Z and Ctrl bound, the Ctrl keybinding will only trigger after 200ms)

it is responsibility of a person who does it. If they do it, it means they do it intentionally.

this is a good point. I'd be open to this on the sole condition that it is done by the user. I don't want a plugin dev setting this as their default keybinding for something and then making users confused when they're pressing Shift as part of a combo and something weird happens

I think that kind of behavior is unacceptable for software that tries to be useful for annotation as there are many possible ways to effectively utilize modifiers keys. If you look at similar software such as CVAT, it has some useful hotkeys that are bind to only modifiers.

Circling back to this could you provide specific examples of what they're doing since I'm not familiar with their software? That would help inform my proposal greatly.
Currently I'm thinking about allowing single-modifier bindings for users only but not multi-modifier only bindings due to the added complexity.

First of all, my response thar it is unacceptable was to  @tlambert03's phrase:

sorry, to be clear, I don't think any modifier-only combos should be allowed.

Denying even possiblity of binding single modifiers sounded shocking to me. Why being able to bind single modifiers like Shift is important I described above.

what they're doing since I'm not familiar with their software?

In the brush mode CVAT allows to change the brush size by holding ’Ctrl+Alt` + mouse move. I'd say it is much more convenient to control the brush size in that way than using any keyboard keys for decreasing and increasing it by a fixed step. However, as @alisterburt mentioned if the mouse event has modifiers status then it can be implemented without binding to these modifiers. Actually, I'm thinking about making a PR with that functionality.

@ksofiyuk I would love to see that PR, please ping me for review if you open it!

In the brush mode CVAT allows to change the brush size by holding Ctrl+Alt + mouse move. I'd say it is much more faster and convenient to control the brush size in that way than using any keyboard keys for decreasing and increasing it by a fixed step.

Ah yes, Blender does this too but with the F key in sculpting mode (and Shift+F for intensity) - it's incredibly useful

I think we should go in the way that plugins will be allowed only to set suggested shortcuts that settings could control.
I also think that we could put more restrictions on plugin contributions shortcuts than this shortcut that could be provided via interface (or when creating a wrapper).

@ksofiyuk

If someone binds something to Ctrl and it can be triggered by Ctrl-Z, it is responsibility of a person who does it. If they do it, it means they do it intentionally.

I think this argument goes out the window once we allow plugins to set key bindings. At that point, if a plugin enables this key binding, there is a high probability that napari gets a bug report about the weird visual flicker when they do Ctrl-Z, and it becomes the core devs' job to hunt down which plugin caused this weird thing to happen.

I think this argument goes out the window once we allow plugins to set key bindings.

@jni The thing is that you cannot completely limit what other devs can do outside napari. It's Python, even if you remove this functionality from common API, I can get access to the internals of napari or Qt and change its behavior in completely unexpected ways by patching methods or doing other manipulations.

There is a high probability that napari gets a bug report about the weird visual flicker when they do Ctrl-Z, and it becomes the core devs' job to hunt down which plugin caused this weird thing to happen.

I think that kind of issues should be solved as they arrive. Do you really have struggling users with spurious Ctrl triggering when they press Ctrl-Z given the fact that they bind Ctrl themselves or any similar scenarios? I highly doubt so. Even if so, do you indeed think that you do your best for those users by just forbidding at all or limiting the functionality?
I think if you care about your users and devs, you should not decrease flexibility. To reduce possible issues in the future I think it will be enough to:

Update the documentation and warn that binding modifiers keys can conflict with other shortcuts that use these bindings.
If someone tries to bind a modifier that conflicts with other shortcuts, issue a warning message that shows a list of possible conflicting shortcuts.
[Optional] Implement @kne42's solution with a delay, but I think that the delay should be customizable through settings, so that people like me can decrease it to improve responsiveness of pressing Shift when I bind it, other can increase it to avoid spurious triggering if they experience issues with that.

I believe that restricting such things may worsen the situation.  I'm sure there are other people who find, for example, binding some temporary visual effects like making the labels layer visible/invisible to, for example, on Shift. And if I discovered that bind_key does not work for that, it's unlikely that I would abandon that idea; instead, it would encourage me to use some undocumented API or other hacky ways of implementing it, which would cause more serious issue and would be more harder to trace the root of those issue.

@jni The thing is that you cannot completely limit what other devs can do outside napari. It's Python, even if you remove this functionality from public API, I can get access to the internals of napari or Qt and change its behavior in completely unexpected ways by patching methods or doing other manipulations.

npe2 plugins are loaded only on command demand. Not on startup time. And in a short time, we will drop npe1 plugin support.
So users could notice that something breaks only when the user enables a given plugin.

Do you really have struggling users with spurious Ctrl triggering when they press Ctrl-Z given the fact that they bind Ctrl themselves or any similar scenarios? I highly doubt so.

No, when binding is initiated by the user, this hasn't happened. But on an application level, we indeed already had this very discussion:
https://github.com/napari/napari/pull/3072#issuecomment-893199773
That is my point, I'm not saying forbid this behaviour, I'm saying, we should be careful in how we expose it to minimise user confusion.

I think if you care about your users and devs, you should not decrease flexibility.

Please avoid using the argument that we don't care about our users. (I recommend following this rule both here and in other projects.) Maintaining a popular open source project is hard enough (e.g.) without being accused of not caring about our users. It is very demotivating. We have hundreds of ongoing conversations like this one about many design decisions because we care about our users. The whole conversation is about reducing confusing behaviour for users.
As to whether more flexibility is always better, I recommend this blog post by Paul Ganssle:
https://blog.ganssle.io/articles/2023/01/attractive-nuisances.html

A particularly insidious type of attractive nuisance occurs when you have a feature that may have legitimate niche use cases, but also provides a solution to a particularly common XY Problem. Imagine that 0.1% of all your users would find feature X useful, but it will induce 5% of your users into using an anti-pattern — by adding the feature, you would get a 50:1 misuse to use ratio. This isn't even so bad when the misuses are easily detectable (e.g. pandas' SettingWithCopyWarning), but sometimes the anti-pattern is something that causes problems only at scale, or only way down the road.

I'm not saying that this is the case here! I'm saying that it is worth pausing and considering whether this is the case, before rushing to implement something.
Everyone here is trying to consider carefully the best way forward, and arguments like "other approaches are bad if you care about your users" do not promote careful consideration.
I apologise @ksofiyuk if all that came across as harsh; it is not my intent: I am just trying to express how I felt above and why I felt that way, so that we can work better together in the future. I totally appreciate the effort you're putting into napari! And I'm confident we can find a solution here that satisfies everyone.
At any rate:

It's Python, even if you remove this functionality from public API, I can get access to the internals of napari or Qt and change its behavior in completely unexpected ways by patching methods or doing other manipulations.

See above about "attractive nuisance" — the discussion is not about what's possible, it's about what's encouraged, and how.

I'm sure there are other people who find very useful, for example, binding some temporary visual effects like making the labels layer visible/invisible to Shift

Oh yeah this is definitely useful. I remember some user logs for people tasked with proofreading segmentations at Janelia — one of the proofreaders pressed the F key (which was the shortcut to toggle hide/show segmentation) >18,000 times per day! 😵 Actually in napari this used to be V for the currently-selected layer, but that's currently broken. I think this is a known issue but I can't find it — I wonder if @psobolewskiPhD or @kne42 remember?
Your argument is that Shift is more useful than V because it's easier to find, right?
Anyway, let's work together to understand all the requirements, risks, and possible solutions — there's been a lot of discussion and different examples (CVAT, Shift, modifier order), each of which might have different solutions.

Please avoid using the argument that we don't care about our users.

I'm sorry if my phrase is interpreted like that, I didn't imply that you don't care about your users.

Your argument is that Shift is more useful than V because it's easier to find, right?

One of the advantages, yes. First, it is a big well-known key, that almost anyone can find automatically without looking at the keyboard. Second, I place my right hand in the left bottom corner of the keyboard during segmentation, so that my fingers are on Ctrl, Alt, Shift, Z, X at the same time. It allows to do the following things without moving the hand at all:

Please avoid using the argument that we don't care about our users.

I'm sorry if my phrase is interpreted like that, I didn't want at all to imply that you don't care about your users. I just wanted to emphasize that there is a possibility that you may not fully understand the real needs of your users, and by doing something with the best of intentions you could actually make it worse (if you disabled using single key modifiers it would be exactly this case for me personally).

Your argument is that Shift is more useful than V because it's easier to find, right?

One of the advantages, yes. First, it is a big well-known key, that almost anyone can find automatically without looking at the keyboard. Second, I place my right hand in the left bottom corner of the keyboard during segmentation, so that my fingers are on Ctrl, Alt, Shift, Z, X at the same time. It allows to do the following things without moving the hand at all:

Undo the last operation Ctrl+Z
Switch between adding and removing by pressing X
Hide/show labels by holdling Shift
Change the brush size by holding Ctrl+Alt + mouse move

All of the mentioned actions can be performed tens of times during editing a single segmentation mask.
If you placed hide/show on V, I would need to move my index finger to find that key, which is an unnecessary movement and it would be easier to accidentally miss and hit another key.  The whole thing about ergonomics is to minimize any unnecessary movements during the process as much as possible.

If someone tries to bind a modifier that conflicts with other shortcuts, issue a warning message that shows a list of possible conflicting shortcuts.

This seems like something that should go in no matter what we choose. It would also work with plugins, and it would allow users to know what to re-bind if they are using conflicting plugin.

I commented on the other PR, but I'm a big fan of the functional shortcuts built around easy reach and gestures, rather than F is for fill T is for tool, etc.
When using copy/paste/cut/undo, you naturally have a hand on that sector of the keyboard, so using the modifier keys and ASDFZXCV and the mouse/stylus/trackpad is very natural.
For example, I've restored the old modifiers: alt for eraser and ctrl for fill, shift to preserve labels—it's easier than reaching to the numbers or looking for P on the right side of the keyboard.
Photoshop uses both the letter -> mnemonic and the modifiers on clicks/drags/etc—often tool specific. You need to learn it, but it becomes second nature--so says my wife anyways, who uses photoshop all the time.

hi @ksofiyuk, I've created a NAP on the issue at https://github.com/napari/docs/pull/200 and would value your input as a user!


feat: implementing clickhouse image

Hey, really sorry 🤦, I assumed this would create a file in our forked repo. It's not quite ready yet but trying to get it to it.

No worries, that's totally fine. We can convert PR to draft until it's ready for review 🙂

@DDtKey This should now be ready to go. Let me know if you have any comments/thoughts?

Thank you!

Thank you too! 🙏 Any chance you can do a new release? And do let me know when you build the http checker, happy to make the change!

Sorry for the delay, I completely forgot to release a new version.
I'm about to release 0.5.1 and HTTP verification will be available in test containers soon!

Hey, please don't apologize! Thanks for stewarding the project and for the new update!


[Question]  why CommandList is called in drawing Loop ?

I am confused why CommandList not create and set in advance ,but set in render loop. I see the vulkan C++ code, vkCommandBuffer just created ahead .

Can I set commandList advance like this,I am out of the door so have not test.
private  void preBindingCommandList()
{
_cl.begin();
_cl.SetPipeLineAndOthers();
_cl.End()
}
private void RenderLoop()
{
while(true)
{
_cl.SetFramebuffer(XXX);
_gd.submit(_cl);
_gd.SwapBuffers(mainswap);
}
}

No, that sort of thing isn't supported by Veldrid. If I'm reading your code snippet right (and it would need to be written a bit differently to work), you are interested in a couple of features:

Re-usable command buffers. Right now, Veldrid's CommandLists are not re-usable, primarily because Metal's are not -- or rather weren't. They can be now with a newer Metal feature (Indirect Command Buffers).

"Secondary" command buffers. The ability to record a set of commands and then replay it inside another one. This isn't supported either, and some investigation needs to be done as to its feasibility in all of the backends, as well as the limitations. Metal would likely need Indirect Command Buffers for this to work (if it would at all).

Thank you,It seems ok the way you do.


cmd/compile: internal compiler error: Type.Elem UNION

What version of Go are you using (go version)?

$ go version
go version go1.20 linux/amd64

Does this issue reproduce with the latest release?
Yes, but it works in go1.19
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE="auto"
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/clark/.cache/go-build"
GOENV="/home/clark/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/clark/.go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/clark/.go"
GOPRIVATE=""
GOPROXY="https://goproxy.cn,direct"
GOROOT="/usr/lib/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.20"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
GOWORK=""
CGO_CFLAGS="-O2 -g"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-O2 -g"
CGO_FFLAGS="-O2 -g"
CGO_LDFLAGS="-O2 -g"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build3340342221=/tmp/go-build -gno-record-gcc-switches"

What did you do?

GoPlay: https://go.dev/play/p/DfmO9bKkKal

go run main.go
What did you expect to see?

[clark@ArchOxO issus]$ go run main.go
true

What did you see instead?

[clark@ArchOxO issus]$ go run main.go
# command-line-arguments
./main.go:3:5: internal compiler error: Type.Elem UNION

Please file a bug report including a short program that triggers the error.
https://go.dev/issue/new

CL 458619 fixes this issue for unified IR.
Should we backport? cc @mdempsky

@cuonglm Yeah, I think backporting that CL to 1.20 seems appropriate and reasonable. Thanks.

@gopherbot please consider backport this to 1.20.

Backport CL is created, closing.


pin jax

The alternative is to fix the current JAX release issues

I just released sax==0.10.3, which depends on klujax==0.2.3 where the issues mentioned in https://github.com/google/jax/issues/17662 were fixed.

Awesome, thank you Floris!


Buildtree deps folder

Following step by step guide.
As an idea, I think "phpsdk_buildtree phpdev" should not add empty "deps" folder.
As later git cloning does not work as folder is not empty.
Anyway, later "phpsdk_deps -u" create it.

ops, i went wrong way :) all ok


Design DB structure

Create a DB design structure, that everyone will have to approve in the end to start

@Pascal-Adrian @russian17 @pyramixofficial please provide feedback


CI test fail when using oclgrind or pocl

Issue with the build and deploy CI
Github action do not provide OpenCL compatible devices making tests impossible to run.
An alternative solution is to use oclgrind which simulate an OpenCL device but that still fail.
The error when running test is OpenCL-error -1001 "CL_PLATFORM_NOT_FOUND_KHR" which means that cl_khr_icd-extention have trouble to load the proper vendor driver.
Information:

The current CI is only tested on Ubuntu for now.
OpenCL installation is done by apt install apt install opencl-headers ocl-icd-dev ocl-icd-opencl-dev but maybe not necessary?
Python package is managed by conda.

I was not using oclgrind properly.
changed the command
python -m pytest .
to
oclgrind python -m pytest . to run the test.
:heavy_check_mark: The good part is, it detect a platform.
:no_entry_sign: The bad is it does not generate correct output and the test assert fail.
It also fail on my local machine, so more an issue linked to ocl than the CI workflow.

The invalid results is solved, see this.
The remaining issue is the linking with libOpenCL.so not happening with the error ImportError: libOpenCL.so.1: cannot open shared object file: No such file or directory
Solving this should unlock a full CI build and test action


wasip1: change lookupAddr to correctly handle numeric IP addresses

This PR makes 3 changes:

Adds hints.flags |= AI_NUMERICHOST if lookupAddr is called with an IP address. This allows wasip1.DialContext() to accept and resolve an IP address.
Adds hints.flags |= AI_NUMERICSERV if lookupAddr is called with a port number. This optimizes handling of numeric service / port numbers.
Fixes IPv6 handling in getaddrinfo. This allows getaddrinfo to correctly return an IPv6 address.

Would it make sense to export lookupAddr or add a Resolver type to the wasip1 package that can resolve addresses? Given that the underlying syscall is blocking, I’d like to be able to cache DNS lookups and bypass the syscall when opening sockets.

I also fixed an unrelated but major IPv6 bug in 8bf310a.

Thanks for the PR!

Would it make sense to export lookupAddr or add a Resolver type to the wasip1 package that can resolve addresses? Given that the underlying syscall is blocking, I’d like to be able to cache DNS lookups and bypass the syscall when opening sockets.

At the very least, top-level LookupIP and LookupPort functions that are compatible with the standard net package would be useful here. We could also make it so that when you call these functions and the purego build tag was specified it just forwards the calls to the standard library.

Agree. I was thinking a top-level LookupHost function that accepts a Context and returns a slice of stringified IP addresses: https://pkg.go.dev/net#LookupHost
What’s the interaction with the purego build tag and this package? Does that disable syscalls? (Asking because purego breaks net.Resolver entirely, even on gotip.

What’s the interaction with the purego build tag and this package? Does that disable syscalls? (Asking because purego breaks net.Resolver entirely, even on gotip.

See https://github.com/stealthrocket/net#name-resolution. It instructs the library to use the non-blocking pure Go resolver rather than the blocking sock_getaddrinfo system call. Unfortunately the pure Go resolver doesn't work yet, we're waiting on https://go-review.googlesource.com/c/go/+/500579.


Set up tests for next

The framework of choice for e2e is the playwright.
As for the unit testing, jest should be used.

Closed by #27


Stack of errors for long error messages

Describe the bug
If the error message is longer than the available terminal width, the error messages start to appear one below the other when any key is pressed.
To Reproduce
Steps to reproduce the behavior:

Add long message to validator
Set terminal window less then validation message length
Get validation error
Press left arrow key or backspace or continue typing

Expected behavior
The error message keeps its position on the screen.
Screenshots

Desktop

OS: ArchLinux
Version: Latest

Additional context
Can be related to #15

Thanks for reporting, I'm taking a look at fixing #15 at the moment, working with terminal sizes will be the next step!

There was a trade-off to be made.
The easiest fix was to disable line wrapping, leaving the "nice-UI" responsibility in these cases to the lib user. However, since I don't provide any API for the user to properly break their own lines based on the terminal size, I discarded this idea.
The other fix was to calculate how many lines the rendered text actually occupied. Besides counting the \n characters in all of the written text, lines that are too long will be automatically splitted by the terminal. We then calculate the current terminal width to check how many lines the "current line" actually occupied.
The first option for this fix was to get the terminal size and calculate the line count on every re-render. But this didn't magically fix some problems when resizing the terminal either way. Thus, I have decided to just retrieve the terminal size at the prompt start-up and assume it won't be changed until it is finished.

I think it's ok and suitable for most cases. Thanks!


image rotation doesn't rotate until click on the image itself

Hi there,
I would like to try rotation function on the image, so I create a simple click event on the image to call the rotate function. The problem I got is, the image won't rotate/draw unless I click it twice. I am pretty new to this, could somebody help me take a look:
jabin is right here
http://jsbin.com/muxofak/edit?js,output
To see the rotation, please drag the image away from the left up coner first.
Thanks very much

@lavrton Thanks Anton, that's very helpful!


Fix: #103 missing typescript definitions

Fixes types stated in #103

@davidgoitia @felixhao28 can you guys maybe add some sort of testing code for the typescript version?


Use last message time for timeout on chat queue creation

The quicker the queue can go, the better.

Do I smell wombo combos?

um... okay I guess


Case Law and Scholarship

There are more cases and scholarship that have been turned green and are ready for uploading.
The double unknown issue and the hyperlink issue has been fixed.
https://docs.google.com/spreadsheets/d/1LVc6FM3RwJqqcyF6i3J1YDMfhzNaxbUgZ3YcmH4VupQ/edit?usp=sharing

Thank you!
These have now been deployed.


That Split is Wrong

https://github.com/osstotalsoft/generator-graphql-rocket/blob/fac0f3f93c42c02be20863edf3caca94fb042aa4/generators/app/templates/infrastructure/src/db/multiTenancy/tenantFilters.js#L29
If I split by " as " I expect the table name to be the first item in the array.
The code should be:
const tableName = tableNameComponents[0];

Also when we have a different schema then "dbo" this will crash later when we search the table name in the tenant agnostic table list.
We need a more robust system of identifying where to put that "where TenantId = @p0" filter.
PS: Someone might put table full name, like: catalog.schema.tableName ...

The tenancy filter will be power by npm package @totalsoft/knex-filters, see https://github.com/osstotalsoft/nodebb/pull/9


[WIP] Fixed detection of CoreOS and overlay issues with systemd-networkd.

Also, added a DC/OS specific network configuration when we detect
networkd is enabled.
High Level Description
What features does this change enable? What bugs does this change fix? High-Level description of how things changed.
Related Issues

DCOS_OSS-1790 Fixing overlay issues in newer versions of CoreOS.

Checklist for all PR's

[ ] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[ ] Read the DC/OS contributing guidelines
[ ] Followed relevant code rules Rules for Packages and Systemd

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[ ] Change log from the last version integrated (this should be a link to commits for easy verification and review): example
[ ] Test Results: [link to CI job test results for component]
[ ] Code Coverage (if available): [link to code coverage report]

PLEASE FILL IN THE TEMPLATE ABOVE / DO NOT REMOVE ANY SECTIONS ABOVE THIS LINE
Instructions and Review Process
What is the review process and when will my changes land?
All PRs require 2 approvals using github's pull request reviews.
Reviewers should be:

Developers who understand the code being modified.
Developers responsible for code that interacts with or depends on the code being modified.

It is best to proactively ask for 2 reviews by @mentioning the candidate reviewers in the PR comments area. The responsibility is on the developer submitting the PR to follow-up with reviewers and make sure a PR is reviewed in a timely manner. Once a PR has 2 ship-it's, no red reviews, and all tests are green it will be included in the next train.

This change is

@mesosphere-mergebot bump-ee

@mesosphere-mergebot bump-ee

@karlkfi @branden @GoelDeepak could you give this a look. Tried it on a CoreOS stable AMI and this seems to hold. Don't have an integration test for this since we don't have AMI for CoreOS stable in the team city jobs.

@asridharan @karlkfi can we move this forward again?

Hi @asridharan and PR reviewers,
I've attempted a test-merge of this PR into #2119, which updates CoreOS AMIs to 1520.8.  I am still seeing errors in (what I think is) UCR networking.  The following tests all fail:

test_networking.test_vip[Container_DOCKER-Network_BRIDGE-Network_USER]
test_networking.test_vip[Container_DOCKER-Network_USER-Network_BRIDGE]
test_networking.test_vip[Container_DOCKER-Network_USER-Network_HOST]
test_networking.test_vip[Container_DOCKER-Network_HOST-Network_USER]

A link to a TeamCity job run is here: https://teamcity.mesosphere.io/viewLog.html?buildTypeId=DcOs_Open_Test_IntegrationTest_AwsCloudFormationZenCoreOS&buildId=874297&branch_DcOs_Open_Test_IntegrationTest_AwsCloudFormationZenCoreOS=pull/2119
Any ideas?

@mesosphere-mergebot bump-ee

@karlkfi can you give this another read. Introduced a here document, but re-factored into a helper function since the indentation in the conditional was causing grief. Have re-run the two failed checks, they seem to flaky.

@branden would need a look from you as well.

@mesosphere-mergebot bump-ee

@spahl could you give this a look as well. @klueska mentioned you probably would know about the installer pre-req shell scripts.

@mesosphere-mergebot override-status
teamcity/dcos/test/azure/arm https://jira.mesosphere.com/browse/DCOS_OSS-1830

@mesosphere-mergebot override-status
teamcity/dcos/test/docker/smoke  https://jira.mesosphere.com/browse/DCOS-17652


message.MessageAttributes not message.Attributes

When receiving a message, the api is message.MessageAttributes, not message.Attributes.

This has been fixed now; release version 4.0.0


Attach to parent element

Was the parent option to attach the picker to a parent element removed in V2?
The problem is that if it's attached to a scrollable element, the popup is positioned to window so it doesn't scroll with the scrollable element.

See the static color picker example on how I append the picker element to a DOM:
picker.enter(document.querySelector('#container'));


Disable additional transforms for the PyTorch Autograd path

Applying transforms on the trace after "forward backward split + transform_for_execution" is not a well-tested path and breaks the careful sorting of operations introduced inside the split_forward_backward function. In the future, we need to revisit the order of transformations and move execution transforms out of the split_forward_backward function. Today this PR is needed to restore distributed communication overlap with computation and unblock fixing TransformerEngine+DataParallel.

So I generally agree with the patch, but the CI has opinions.

Notebooks fail with:
     18 cache_rec, i_, _ = thunder.compile_data(thunder_model).get_computation_and_inputs(x)
---> 19 computation_trace = cache_rec.computation_traces[0]

IndexError: list index out of range

Next error in the notebooks:
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
### DON'T TRY THIS AT HOME
computation_trace.bound_symbols[2].sym = cache_rec.computation_traces[0].bound_symbols[2].subsymbols[0].sym
if cache_rec.computation_traces[0].bound_symbols[3].subsymbols:
    computation_trace.bound_symbols[3] = cache_rec.computation_traces[0].bound_symbols[3].subsymbols[0]
computation_trace.bound_symbols[4].sym = cache_rec.computation_traces[0].bound_symbols[4].subsymbols[0].sym

wrap_as_highlighted_code(computation_trace)


AMS: Template does not allow author to customize page margins

https://github.com/typst/templates/blob/01afc5cb135743517111269cb34b98dc44400b17/unequivocal-ams/lib.typ#L53-L67

Isn't this all mandated by AMS anyway?

Yes, but some of us would like to use this as the base for general documents, like we would with the amsart document class in LaTeX.
If you try to set the margins after the #show: ams-article.with(...), then the document will start on the second page, which is not at all desirable.


IO implementation for embedded-io

Related to #100

Rebased on main. Would love to have some feedback.

This PR went stale for a while now. @dbrgn could take a look?

@Artur-Romaniuk because this PR was created on top of the delay branch (#104), I wanted to wait until that branch is ready and merged (and left feedback there) to make review easier.
If you want to make PRs easier to review, try to keep them small and focussed. Having a lot of practice with git rebase (especially interactive rebase) helps a lot with that.

@Artur-Romaniuk because this PR was created on top of the delay branch (#104), I wanted to wait until that branch is ready and merged (and left feedback there) to make review easier.
If you want to make PRs easier to review, try to keep them small and focussed. Having a lot of practice with git rebase (especially interactive rebase) helps a lot with that.

That was a fuckup...
Must have rebased this branch on wrong origin/main. Force pushed rebased version with all unecessary commits dropped.

Any chance this gets fixed and merged in a near future?

@Artur-Romaniuk do you have plans to finish this PR, or would you like for someone else to take over?


AOS does not work with sveltekit. Any suggestions?

This is:

Bug
Feature request
Question
Idea

Specifications

AOS version:
OS:
Browser:

Expected Behavior

Actual Behavior

Steps to Reproduce the Problem

Detailed Description

Possible Solution

I'm not a maintainer but I'd highly recommend putting some effort into your bug report if you want any help.
For anyone who runs across this in future - Sveltekit and AOS work perfect together. I am currently using it on both SSR and SSG pages and I have no problem.


Add Ukraine Flag

@saNed This looks great! But there are some merge conflicts. Please remove them so that we can merge this.


Doesn't work for me

Describe the bug
I've pasted the code in my HTML box on Blogger, and it doesn't show any preview, it says there's an error.
Thank you.

Please wait for some fix.

Hope the update will work


Make a Font Preview Page?

I think it would be helpful if you made a Font Preview Page.  Since there's so many to choose from, it would be very helpful to see what they all look like at a glance.  Moreover, it would be especially helpful if they could be sorted by type (serif, sans, handwritten, calligraphy, and so on).
I wouldn't mind making it in the fork I've started, but I cannot seem to find where the fonts are stored and/or pulled from in your repo.
Thanks a lot!
~ Ev

Good idea. Right now it is listing all of your system fonts using chrome.fontSettings, so you could use the font browser in your OS to preview them. I'm thinking about adding web fonts eventually using Google Fonts or something similar.


Update swift version and travis build script

Codecov Report

Merging #113 into master will decrease coverage by 0.29%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master     #113     +/-   ##
=========================================
- Coverage   92.63%   92.33%   -0.3%
=========================================
  Files          53       53
  Lines        3053     3053
=========================================
- Hits         2828     2819      -9
- Misses        225      234      +9

Impacted Files
Coverage Δ

LayoutKit/Views/ReloadableViewLayoutAdapter.swift
85.26% <0%> (-9.48%)
:arrow_down:

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 32ee744...e152e3a. Read the comment docs.


Disable async availability checking for swift_deletedAsyncMethodError.

Prior versions of the _Concurrency library failed to provide
appropriate availability annotations for
swift_deletedAsyncMethodError, which makes them unusable with newer
Swift compilers. Avoid this problem by not checking availability for
this specific API.
Fixes rdar://80967376.

@swift-ci please smoke test and merge

Spurious error on macOS. Trying again

@swift-ci please smoke test macOS


roi_crop vs roi_warp

Just some clarification questions about roi_crop:
Reading the blog and PyTorch page for STN it looks like there is already a reliable implementation for roi_crop layer: did you re-implemented the layer for efficiency reason? if so, do you have any figure for comparison?
Second question: do you think that the RoI Warping Layers could replace the roi_crop one? Are they different enough to justify a new implementation?

Check out his code, there are two options, RoI Pooling and RoI Align.


Create individual organization template page

Please do work for this task in a branch called issue-10.
This page would contain:

logo
org name
mission
pictures
videos

Combined this issue with issue 4 since they kinda go hand-in-hand.


Return a result type, not just a bool

I need the operation to return a result type that will include:

Success - true or false.
Result - the actual result to return, this could be any type.
Messages - a list of strings containing details of the operation and errors.

I have the initial code for this, but it will need expanding on when we add the validation.


[Test] Introduce UnitTest for IDbOperationProvider Interface.

Checked in to the master branch. Will be a part of v1.9.6.


Pitch filtering question

Hi cookcodes!
Thanks for sharing your code with us!
In the PercepNet paper, there is a scale bands module after pitch filtering which uses the pitch enhanced signal z and the postfilter output Xb_hat. However, there has few details about this module in paper. I want to know what your idea is about the scale bands module.
By the way, could you please share the msse value of gb and rb after convergence in your experiments?

For scale bands module, use rb and gb to generate the value in each band in frequency domain. You may check the codes in rnnoise_process_frame() after rb and gb is computed.
interp_band_gain(gf, g);
for (i=0;i<FREQ_SIZE;i++) {
X[i].r *= gf[i];
X[i].i *= gf[i];
}
//applied pitch filter after gain filter
interp_band_gain(rf, r);
for (i=0;i<FREQ_SIZE;i++) {
X[i].r =(1-rf[i])*X[i].r + rf[i]*P[i].r;
X[i].i =(1-rf[i])*X[i].i + rf[i]*P[i].i;
}
Z  means rf[i]*P[i] ??
The overall loss is about 0.8, For msse value, and I will add these informaiton after next training.

Hi Cookcodes,
Thanks for your sharing. I have some confuse about "envelope postfiltering".
In rnnoise_process_frame function, the step is applied the pitch filtering after gain filter.
But I think the "postfiltering" means the last step?
By the way, I check RNNoise is used the pitch filter first, and do gain filter.
Is there any reason use gain filter first than pitch filter?
Thanks,


Adding MD5 code and test files. TODO: Implement test code

Codecov Report

Merging #60 into master will decrease coverage by 19.04%.
The diff coverage is 0%.

@@             Coverage Diff             @@
##           master      #60       +/-   ##
===========================================
- Coverage   69.87%   50.82%   -19.05%
===========================================
  Files           6        8        +2
  Lines         395      543      +148
  Branches       77       85        +8
===========================================
  Hits          276      276
- Misses         55      203      +148
  Partials       64       64

Impacted Files
Coverage Δ

src/aker_md5.c
0% <0%> (ø)

src/md5.c
0% <0%> (ø)

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 174462e...1e9fa65. Read the comment docs.


Dependency on rust-crypto

This library depends on unmaintained and vulnerable rust-crypto. This probably doesn't introduce any security issue, but it would be nice to replace it with something modern like sha3 crate from RustCryptoOrg.
https://rustsec.org/advisories/RUSTSEC-2016-0005.html
https://rustsec.org/advisories/RUSTSEC-2022-0011.html

Sorry for the late reply, I just changed the package to use sha3 crate. Thanks for the report.

I released v0.2.0 to crates.io which has this update.


Slider needs show default meters

The slider meters need show default meters value when the user load at first time the app

Working on it

yeeeeeah

Merged, thanks!


Ambiguous statement RE: Supported Functionality

Not currently supported:
...

The new version of the self-hosted integration runtime can be automatically downloaded from Microsoft Download Center if you enable Auto-Update.

Hi, the wording in this docs article is ambiguous. Is downloading a new version of the SHIR automatically supported, or not? The text suggests that it is supported, but it's in the "not currently supported" heading.

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

ID: 04cca896-a855-6c8a-44fa-0ba83b5f058a
Version Independent ID: 3d841099-2213-9384-a0b9-568c04663630
Content: Azure Private Link for Azure Data Factory - Azure Data Factory
Content Source: articles/data-factory/data-factory-private-link.md
Service: data-factory
GitHub Login: @nabhishek
Microsoft Alias: abnarain

Thanks for the feedback and bringing this to our notice . At this time we are reviewing the feedback and will update the document as appropriate .

We have raised a PR and hence closing the issue for now .


zsh is not set to standard shell

If script/bootstrap is executed, zsh is not set as a standard shell.
chsh -s $(which zsh)

can do the job here

+1

+1
Is zsh actually a requirement for dotfiles? Some of my scripts assume it is.

For these dotfiles, it is a requirement, yep.
I think there's an assumption that your shell is already set to zsh externally, as it's not quite as simple as the one chsh line.  For me personally, I install zsh via Homebrew (brew install zsh) in order to stay up-to-date with the latest versions, and that installs zsh to /usr/local/bin/zsh.  which zsh would correctly pull up the path, but chsh would not accept it as a shell because /usr/local/bin/zsh does not exist as a line in /etc/shells.  So for me, I have to do the following to set up zsh:
$ brew install zsh
$ sudo sh -c 'echo /usr/local/bin/zsh >> /etc/shells' # or just edit the file in Atom or whatever, like I actually do
$ chsh -s $(which zsh)

Other OSs might have a different process / file location / etc.  All that to say that might be one of the reasons the actual chsh isn't in this repo.

A warning or even error at the beginning would be nice then.

Okay, the boot script actually runs with bash.


Fastcast tracker 504 error

Hi, I have this error with my bittorent-tracker configuration and can't seem to work out what is causing it. The error seems to appear in the log after a while, instead of immediately.
Here is the code for my tracker https://github.com/fastcast/fastcast-tracker. The latest node modules are installed.
Here is the Fastcast nginx config https://gist.github.com/jakefb/900af9a1b99fac3e1ae20d9112bc6e6d
@feross do you know why this could be happening?

Problem was this line nginx.conf#65
I've fixed it in the server and it's now working fine. This can be closed @feross

Ok thank you for fixing this.

Cheers!


Return JSON response bodies on Chaff requests

TL;DR
The go-chaff library already supports this
https://github.com/mikehelmick/go-chaff/blob/main/json.go
Use this to respond w/ properly formed JSON based on the request being chaffed - for our APIs, this really just means having a padding key in the JSON object.
REMEMBER - the size of the random data will need to be reduced as base 64 encoding will cause ~33% size increase.
/priority important-soon
/kind enhancement

This requires changes to the chaff library, and the person who does it should make sure to do both.
Yoink.

Do you know which changes need to be made?


Post-release TODOs

Pre-release

[x] Make it work
[x] Examples
[x] Haddock
[x] Update README
[x] Make repo public
[x] Release!

Post-release

Write some tests

[x] Webhook validation
[x] Webhook
[x] Webhook types (JSON decoding)
[x] API types (JSON encoding/decoding)

[x] CI setting: Set Travis CI for Stack projects
[x] Stackage: https://github.com/fpco/lts-haskell/issues/31

:tada::tada::tada:


WIP: make lld include paths private

This fixes a build failure on cygwin caused by <string.h> -> <strings.h> taking
the latter from one of the lld paths.
WIP because this hasn't been tested on other platforms
Does this make sense?

seems fine to me

thanks!


⚠ TiendaEnLinea has degraded performance

In 927bac4, TiendaEnLinea (https://www.fahorro.com/) experienced degraded performance:

HTTP code: 200
Response time: 5755 ms

Resolved: TiendaEnLinea performance has improved in e505f83.


Expense submission redesign

Friction
The expense form is kind-of a step by step process but inconsistently so and this creates an unclear user experience that introduces unnecessary micro-tensions:
The choice between invoice/reimbursement remains at the top of the screen and can be changed at any time resetting the work that has been done.
When the expense details page loads there is no back button to get back to payee and payment method, a back button does show up when an expense title is entered (hinting that there is a step by step sequence between the expense name and the expense details).
It is unclear when the process will be completed (what will happen when I click next from entering the expense details).
A more explicit step-by-step approach creates space for offering expense submitters additional guidance about the differences between invoices and reimbursements and how to submit effective invoices (both causes of friction later in the expense process).
Payee & payment method details mismatches create frictions for fiscal hosts. These frictions can be reduced if it is validated at expense submission.
The expense submission form currently “lives” within the public collective profile. This means that expense submitters need to navigate to collective profiles in order to submit expenses. The personal workplace experience makes it possible to initiate expenses directly from the user’s “home on the platform.”
Currently an expense submitter has no visibility into recurring expenses (until they recur): do they exist, when will they be triggered, how to cancel them.
Due to complexity that has been added over time the expense form can https://github.com/opencollective/opencollective/issues/4991.
There is a backlog of known issues with the expense submission flow (including but not limited to https://github.com/opencollective/opencollective/issues/5081 which together with the formation of the workspace UX pattern creates the conditions to revise and improve it.
Solution
Transform expense submission into an explicit step-by-step user experience within the workspace
Integrate expense submission into workspace.
Enhanced integration into workspace with recurring and replicated expenses.
This project is intended for internal-beta release ONLY at first to get feedback from the team before releasing publicly.
This project also depends on the release of https://github.com/opencollective/opencollective/issues/6385 .
Scope
Scope 1: Step-by-Step expense submission
Image
This should include:
A design that gives an overview of the expected process. The user should know where they are in the process (what have I already done, what more do I need to do, how far am I from completing the process).
Each step should be be explicit and atomic and the steps should be in a sensible sequence.
It should be clear that it is possible to navigate back and (to the extent possible) forth in the process. This communicates that decisions are reversible.
 ).
When used with invited expenses it should be correctly pre-populated with the invited information.
A performance review https://github.com/opencollective/opencollective/issues/4991
The discrete steps are:
Select collective (and if necessary event/project) to which this expense is being submitted. If the user started the “submit expense” flow on a collective (or event or project) profile this is pre-populated with the originating profile and the user can click next to move to the next step.
Select invoice or reimbursement including an explanation (text + graphics) of each one and the difference between them so that the user can make an informed choice.
Expense submission guidance - depending on what was selected (invoice or reimbursement) show extended instructions about how to submit the expense effectively. See Default instructions for invoice statements
Provide default platform instructions.
Provide an option for fiscal-hosts to author host-specific instructions about how to submit invoices and reimbursements. If a host creates a customized message it replaced the generic platform message.
Select Payee - show list of all used (and accessible) payees with:
last used (by the expense submitter) appearing first
the others sorted based on frequency of use
last options are those I administer (have access to) even if never used.
Enable creation of new payee organization
Select Payment Method.
Show existing payment methods
Enable selection of payment method
When selected indicate clearly what has been selected (emphasize information such as Currency & Country that enables the user to rapidly and visually validate the selection).
Enable creation of new payment method.
Validation checks - after payment method is selected perform validations
a name-match check:
If the payee does not have a legal name entered display an explanation that this is a requirement to complete payment and:
If the expense submitter is also the payee or an admin of the payee, provide them an opportunity to enter the legal name (because they have the right to do so) - enable option such as "legal name is same as payee profile name" which copies the existing name into the legal name field for the expense submitter.
If the expense submitter is not the payee and not an admin of the payee, instruct the expense submitter that they need to reach out to the payee and ask them to update their legal name in order to receive payment
If the payment method is Paypal - verify that the payee email is identical to the payment method email.
In case of bank account check that the legal name of the payee matches the bank account name.
If there is a mismatch:
Alerts the expense submitter about the mismatch
Explains that if not remedied this may cause delays in paying the expense.
If details do not match, provide the expense submitter an option to input a comment explaining why the mismatch may be legitimate.
Enter expense title (can we provide instructions on how to effectively provide an expense title, a few examples?)
Enter expense details (integrate https://github.com/opencollective/opencollective/issues/6865 )
Show expense summary for confirmation based on all the submitted information:
Show clearly what information will be made publicly available
Show clearly what information will only be visible to collective admins and fiscal hosts
Affordances related to recurring expenses:
Indication if this is already a recurring expense
Option to make this a recurring expense if it isn’t
Option to cancel the recurrence if it is a recurring expense.
Clear “submit” affordance that concludes the submission.
Redirect the expense submitter to the expenses list where the expense submitter can see that the latest expense is the one created.
Scope 2: Integrate expense submission into workspace.
No matter where expense submission begins it always leads to the individual workspace and ends up with an a visibly created expense in “My Expenses.”
Direct submit expense from collective page to individual workspace
Add “submit expense” affordance in Individual Workspace- > Expenses tool.
Add “submit expense” in header account control
Scope 3: Enhanced integration into workspace
Replicate Expense - create an expense by replicating an existing expense and land directly at the “Expense title” step that can also be replicated and edited.
Indicate recurring expenses in “My Expenses” - with option to cancel.

This project continues #6867
During this cycle we wish to:

Complete the designs.
Collect internal feedback.
Collect external feedback (demo'ing and interviewing a few users)
Pitch the project for implementation during next cycle.

The intentions for this week are:

[ ] Complete designs (including exceptions such as vendors and invite expense)
[ ] Review with engineering of the new designs.
[ ] Identify interview candidates - 2 users who are regular expense submitters and 2 users who are occasional/new expense submitters - @Memo-Es will coordinate with @aerugo

On November 24th design ( @aminakazi and @Memo-Es ) demo'ed the progress to engineering (represented by @gustavlrsn and @Betree ) who provided both helpful feedback and a general thumbs-up to progress with this project.
Our objective for this week is to conclude the week with a demo to the wider team (OC Inc and 1st party hosts). Amina is leading the design effort and Gustav has offered to provide feedback during the week. The upcoming demo is an invitation for feedback and to check if there are blockers to moving forward with this project into implementation.
Open issues (beyond smaller issues which Amina noted during the call)

[ ] Clarifying the "Who is getting paid" step to make it easier to recognize and interact with the available options.
[ ]  Design flow for editing an expense
[ ] Expanding the instructions to reflect: collective policy, host instructions (based on initial selection: invoice, reimbursement, vendor) + accounting-category specific instructions.
[ ] Design for "missing legal name" scenario + in-flow resolution
[ ] Design for payment method & payee information mismatch error checking ... with guidance for resolution.
[ ] Design flow for invite expense
[ ] Design flow for vendor expense
[ ] Reveal "recurring expense" information and action in summary screen

When discussing the road to implementation we realized that this may be too much for one cycle and that we may wish to approach this in two cycles:

Cycle 1: Initial work and UX research (to address questions such as modal/non-modal design and integration with collective profile pages.
Cycle 2: Completion and rollout.

If we do approach this as a two-cycle project, I would like to aim to complete the 1st cycle with something that can be released internally for feedback and testing.

Week 4 is going to be about research. We want to research two directions:

Getting feedback about the new step-by-step designs by demo'ing and getting feedback from users:

[ ] Interview a couple of expense submitters who submit expenses regularly.
[ ] Interview a couple of expense submitters who submit expenses rarely/occasionaly
[ ] Interview collective admins and ask how they feel about this user experience both personally (for themselves) and for  other expense submitters related to the collectives / new expense submiitters.

Inquiring into the usecase brought up by @poohlaga where a fiscal host admins needs to be able to rapidly enter multiple expenses and the the step-by-step process can slow them down.

[ ] Conduct an interview with Lauren to learn more about the usecase (please record).
[ ] Consider conducting a user interview with other host admins to see if they have have similar needs
[ ] If applicable, wireframe a "Quick expense" flow dedicated to fiscal host admins within the "Hosted Collectives" redesign effort.

Design update
I'm publishing here the results of the design explorations and a couple of rounds of feedback with internal members of the Open Collective team.
Phase 1
We started  these series of design rounds with the goal of embedding the expense submission flow in the new dashboard. For that end we first added a "Create +" button from the personal dashboard expenses page. Our original idea was to open this new flow inside a modal:

Personal Dashboard
Modal

Parallely, we started to flesh out all the details of the steps that this new flow was going to be based on:

Step 1
Step 2
Step 3
Step 6
Step 7
Step 8
Step 9
Step 10

Phase 2
After the first round of feedback and analysis, we started to consider a different UI pattern to present the expense flow. Instead of a dialog modal, that would make it hard for users to follow-up with a complex process like that from a small window modal, we tried with a full-page overlay that takes over the entire screen.

Phase 3
In a new effor to add further aid to the submission process, and to be able to remove the summary step. We added a preview mechanism that lets the user preview the expense while they are submitting it.

Phase 4
We finalize these series of rounds with a couple of updates. Since the preview features created a 3-column layout, we changed the steps component from a sidebar to a top step toolbar, helping us simplify the layout design to a 2-column one.

Mobile reference

Landing
After scroll
Preview

Expense submission for Fiscal Hosts (Included in #7105)

Step 1
Step 2


OmniSharp stop loading after first project in workspace

Environment data
dotnet --info output:
.NET Core SDK (reflecting any global.json):
Version:   3.1.401
Commit:    39d17847db
Runtime Environment:
OS Name:     ubuntu
OS Version:  18.04
OS Platform: Linux
RID:         ubuntu.18.04-x64
Base Path:   /usr/share/dotnet/sdk/3.1.401/
Host (useful for support):
Version: 3.1.7
Commit:  fcfdef8d6b
.NET Core SDKs installed:
2.1.809 [/usr/share/dotnet/sdk]
3.0.103 [/usr/share/dotnet/sdk]
3.1.401 [/usr/share/dotnet/sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.21 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.21 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.0.3 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.7 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.21 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 3.0.3 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.7 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
VS Code version: 1.48.0
C# Extension version: 1.23.0
OmniSharp log
Starting OmniSharp server at 2020-08-16, 2:04:46 p.m.
Target: /home/alaconda/Workspaces/HealthKnex/hknex
OmniSharp server started.
Path: /home/alaconda/.vscode/extensions/ms-dotnettools.csharp-1.23.0/.omnisharp/1.36.1/run
PID: 9433
    Starting OmniSharp on ubuntu 18.4 (x64)

    DotNetPath set to dotnet

    Located 1 MSBuild instance(s)
        1: StandAlone 16.8.0 - "/home/alaconda/.vscode/extensions/ms-dotnettools.csharp-1.23.0/.omnisharp/1.36.1/omnisharp/.msbuild/Current/Bin"

    MSBUILD_EXE_PATH environment variable set to '/home/alaconda/.vscode/extensions/ms-dotnettools.csharp-1.23.0/.omnisharp/1.36.1/omnisharp/.msbuild/Current/Bin/MSBuild.dll'

    Registered MSBuild instance: StandAlone 16.8.0 - "/home/alaconda/.vscode/extensions/ms-dotnettools.csharp-1.23.0/.omnisharp/1.36.1/omnisharp/.msbuild/Current/Bin"
        CscToolExe = csc.exe
        MSBuildToolsPath = /home/alaconda/.vscode/extensions/ms-dotnettools.csharp-1.23.0/.omnisharp/1.36.1/omnisharp/.msbuild/Current/Bin
        CscToolPath = /home/alaconda/.vscode/extensions/ms-dotnettools.csharp-1.23.0/.omnisharp/1.36.1/omnisharp/.msbuild/Current/Bin/Roslyn
        BypassFrameworkInstallChecks = true
        MSBuildExtensionsPath = /home/alaconda/.vscode/extensions/ms-dotnettools.csharp-1.23.0/.omnisharp/1.36.1/omnisharp/.msbuild

    Detecting Cake files in '/home/alaconda/Workspaces/HealthKnex/hknex'.

    Could not find any Cake files

    No solution files found in '/home/alaconda/Workspaces/HealthKnex/hknex'

    Queue project update for '/home/alaconda/Workspaces/HealthKnex/hknex/hknex.csproj'

    Detecting CSX files in '/home/alaconda/Workspaces/HealthKnex/hknex'.

    Could not find any CSX files

    Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpFormattingWorkspaceOptionsProvider, Order: 0

    Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.RenameWorkspaceOptionsProvider, Order: 100

    Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.ImplementTypeWorkspaceOptionsProvider, Order: 110

    Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.BlockStructureWorkspaceOptionsProvider, Order: 140

    Loading project: /home/alaconda/Workspaces/HealthKnex/hknex/hknex.csproj

    Configuration finished.

    Omnisharp server running using Stdio at location '/home/alaconda/Workspaces/HealthKnex/hknex' on host 9088.

    Successfully loaded project file '/home/alaconda/Workspaces/HealthKnex/hknex/hknex.csproj'.

    Adding project '/home/alaconda/Workspaces/HealthKnex/hknex/hknex.csproj'

    Update project: hknex

Steps to reproduce
Open any workspace.
Expected  behavior
OmniSharp to load and update all projects in workspace.
Actual behavior
OmniSharp seems to stop loading after the first project in the workspace.
This might be related to #3987 and #3983
#3983 In my case, the intellisense seems is working for the first project, but not the subsequent projects.
#3987 In my workspace, the second project has a project reference to first project, and if I load second project independently it will show the same warnings of "cannot be imported again" in #3987.  Not sure if this is the root cause of OmniSharp not being able to load after first project.
It should be noted that if I load each project independently, OmniSharp will show the "cannot be imported again" warnings on all projects that have project references, but intellisense will work.

Update: I was able to get OmniSharp to load the rest of the projects in workspace by setting omnisharp.enableMsBuildLoadProjectsOnDemand = true.
However, I am still getting the warning messages of cannot be imported again for each of the projects that has a project reference.

/home/alaconda/Workspaces/HealthKnex/hknex-data/hknex-data.csproj
/home/alaconda/.vscode/extensions/ms-dotnettools.csharp-1.23.0/.omnisharp/1.36.1/omnisharp/.msbuild/Current/Bin/Microsoft.Xaml.targets(19,4): Error: "/home/alaconda/.vscode/extensions/ms-dotnettools.csharp-1.23.0/.omnisharp/1.36.1/omnisharp/.msbuild/Current/Bin/Microsoft.Xaml.targets" cannot be imported again. It was already imported at "/home/alaconda/.vscode/extensions/ms-dotnettools.csharp-1.23.0/.omnisharp/1.36.1/omnisharp/.msbuild/Current/Bin/Microsoft.Common.CurrentVersion.targets (6156,3)". This is most likely a build authoring error. This subsequent import will be ignored. [/home/alaconda/Workspaces/HealthKnex/hknex/hknex.csproj]
/home/alaconda/.vscode/extensions/ms-dotnettools.csharp-1.23.0/.omnisharp/1.36.1/omnisharp/.msbuild/Current/Bin/Microsoft.WorkflowBuildExtensions.targets(25,4): Error: "/home/alaconda/.vscode/extensions/ms-dotnettools.csharp-1.23.0/.omnisharp/1.36.1/omnisharp/.msbuild/Current/Bin/Microsoft.WorkflowBuildExtensions.targets" cannot be imported again. It was already imported at "/home/alaconda/.vscode/extensions/ms-dotnettools.csharp-1.23.0/.omnisharp/1.36.1/omnisharp/.msbuild/Current/Bin/Microsoft.Common.CurrentVersion.targets (6160,3)". This is most likely a build authoring error. This subsequent import will be ignored. [/home/alaconda/Workspaces/HealthKnex/hknex/hknex.csproj]
/home/alaconda/.vscode/extensions/ms-dotnettools.csharp-1.23.0/.omnisharp/1.36.1/omnisharp/.msbuild/Current/Bin/Microsoft.ServiceModel.targets(12,4): Error: "/home/alaconda/.vscode/extensions/ms-dotnettools.csharp-1.23.0/.omnisharp/1.36.1/omnisharp/.msbuild/Current/Bin/Microsoft.ServiceModel.targets" cannot be imported again. It was already imported at "/home/alaconda/.vscode/extensions/ms-dotnettools.csharp-1.23.0/.omnisharp/1.36.1/omnisharp/.msbuild/Current/Bin/Microsoft.CSharp.CurrentVersion.targets (343,5)". This is most likely a build authoring error. This subsequent import will be ignored. [/home/alaconda/Workspaces/HealthKnex/hknex/hknex.csproj]

I'm also getting the cannot be imported again errors/warning. Everything else seems to work fine at the end but it still bugs me to always get the notification and I'm not really sure what to do with the error information.
"/home/broderpeters/.vscode/extensions/ms-dotnettools.csharp-1.23.0/.omnisharp/1.36.1/omnisharp/.msbuild/Current/Bin/Microsoft.Xaml.targets" cannot be imported again. It was already imported at "/home/broderpeters/.vscode/extensions/ms-dotnettools.csharp-1.23.0/.omnisharp/1.36.1/omnisharp/.msbuild/Current/Bin/Microsoft.Common.CurrentVersion.targets (6156,3)". This is most likely a build authoring error. This subsequent import will be ignored.

I'm also getting the cannot be imported again errors/warning. Everything else seems to work fine at the end but it still bugs me to always get the notification and I'm not really sure what to do with the error information.
"/home/broderpeters/.vscode/extensions/ms-dotnettools.csharp-1.23.0/.omnisharp/1.36.1/omnisharp/.msbuild/Current/Bin/Microsoft.Xaml.targets" cannot be imported again. It was already imported at "/home/broderpeters/.vscode/extensions/ms-dotnettools.csharp-1.23.0/.omnisharp/1.36.1/omnisharp/.msbuild/Current/Bin/Microsoft.Common.CurrentVersion.targets (6156,3)". This is most likely a build authoring error. This subsequent import will be ignored.

Just found out that there is already https://github.com/OmniSharp/omnisharp-vscode/issues/3987 for this issue.

This has been resolved in 1.23.1


Responsiveness of the Authentication Pages.

Make Login and Signup Pages Responsive across all devices. Improve the styling of Toast messages, when successful or any error.

Make Login and Signup Pages Responsive across all devices. Improve the styling of Toast messages, when successful or any error.

Should i also add loader function so that the user does not click the login button again and again?

Make Login and Signup Pages Responsive across all devices. Improve the styling of Toast messages, when successful or any error.

Should i also add loader function so that the user does not click the login button again and again?

Yes that would be better, and try to add spinner and make button disable when logging in....

I am also thinking of adding animations to the button with spring and scale effects.

I am also thinking of adding animations to the button with spring and scale effects.

yes, that would be better. Also for the toast message, you can use react-hot-toast library.

Ok

Can you please add login with google button in both the pages, so that I can implement, login with google functionality from backend?

Sure, will do that as well.

Completed all required functionalities
Updated Login Page (responsive, styling of toast messages and its functions, animated button):

Updated Register/SignUp page:

Done!


Typescript version of this library

How can I include it in my typescript project. It gives me error. any
Property 'overpassLens' does not exist on type 'typeof import("node_modules/@types/leaflet/index")

Sorry, haven't used typescript before, but when I find time, I'll try to look into it.
Pull requests are welcome :-)


[bug] Some Linux gives Failed to load resources: Unacceptable TLS certificate

Describe the bug
Running appimage on Gentoo and Solus Linux gives Failed to load resources: Unacceptable TLS certificate and the user tried reinstalling the ca-certificates but it just doesn't work. Btw my app makes http calls and that what failing because of this.
Reproduction
No response
Expected behavior
No response
Platform and versions
Environment
  › OS: Ubuntu 20.04.4 LTS
  › Node.js: 16.15.0
  › npm: 8.5.5
  › pnpm: Not installed!
  › yarn: 1.22.18
  › rustup: 1.24.3
  › rustc: 1.61.0
  › cargo: 1.61.0
  › Rust toolchain: stable-x86_64-unknown-linux-gnu

Packages
  › @tauri-apps/cli [NPM]: 1.0.0-rc.13
  › @tauri-apps/api [NPM]: 1.0.0-rc.6
  › tauri [RUST]: 1.0.0-rc.14
  › tauri-build [RUST]: 1.0.0-rc.12
  › tao [RUST]: 0.9.1
  › wry [RUST]: 0.17.0

App
  › build-type: bundle
  › CSP: script-src blob: data: filesystem: ws: wss: http: https: tauri: 'unsafe-eval' 'unsafe-inline' 'self' img-src: 'self'
  › distDir: ../cinny/dist
  › devPath: http://localhost:8080/

App directory structure
  ├─ .git
  ├─ .github
  ├─ cinny
  ├─ node_modules
  ├─ resources
  ├─ scripts
  └─ src-tauri

Stack trace
No response
Additional context
No response

I don't have much time right now, so i'm just gonna copy-paste my discord messages for now (for extra context):

i invested sooo many hours into trying to fix it, but something is up with the ssl libs and they don't pick up any settings that are supposed to help here
(at least if the app is built on (older) ubuntu versions)
so the only real fix as of now is to create a redirect from /etc/ssl/certs/ca-certificates.crt to wherever the distro stores it
fun fact that's exactly what fedora did with the release of fedora36

So unless i missed something super stupid (which i don't expect at this point, i really tried sooo much) i don't think we can fix this. Luckily our lord and savior flatpak is on its way 👀
P.S. this may only be a problem with the libs on ubuntu or ubuntu1804 in particular, maybe something's up with the libs or they were build in a weird way idk.

FTR build logs.

@lucasfernog Hi, which Tauri version included this fix?

Error persists on OpenSuse Tumbleweed, brand new install.

For anyone googling this, I had this issue because I was pointing Tauri at an HTTPS server whose certificate chain was incomplete. After I fixed that by including the ca-bundle in my server's .crt file, everything worked.

Hi! UnlimCloud Desktop app (appimage) built using Tauri, give 'Unacceptable TLS certificate' on opensuse tumbleweed - can I do something?

I guess this is the same as what @FabianLars said already, but in my case I got this error when running the AppImage on RHEL 9. I build the app on Debian 10 and noticed my frontend HTTPS calls would fail.
On the RHEL 9 machine, I ran:
$ ln -s /etc/pki/tls/certs/ca-bundle.crt /etc/ssl/certs/ca-certificates.crt

which fixed the issue.


Replace dzello by joshed-io

What is this PR supposed to accomplish?
The theme cannot be updated, since its url is now joshed-io/reveal-hugo, but its go.mod points to dzello/reveal-hugo. By updating URLs, it should be possible to update the theme.
Change log

Replaced github.com/dzello by github.com/joshed-io
Left dzello.com mentions unchanged, unless they refered to the full website

Tests
pablo@hp-pablo:~/Descargas/reveal-hugo$ hugo server -s exampleSite
port 1313 already in use, attempting to use an available port
Watching for changes in /home/pablo/Descargas/reveal-hugo/{assets,exampleSite,layouts,package.json,static}
Watching for config changes in /home/pablo/Descargas/reveal-hugo/exampleSite/config.toml, /home/pablo/Descargas/reveal-hugo/exampleSite/go.mod
Start building sites …
hugo v0.136.5-46cccb021bc6425455f4eec093f5cc4a32f1d12c+extended linux/amd64 BuildDate=2024-10-24T12:26:27Z VendorInfo=snap:0.136.5

                   | EN
-------------------+------
  Pages            |  11
  Paginator pages  |   0
  Non-page files   |   4
  Static files     | 168
  Processed images |   0
  Aliases          |   0
  Cleaned          |   0

Built in 208 ms
Environment: "development"
Serving pages from disk
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at http://localhost:37871/ (bind address <IP_ADDRESS>)
Press Ctrl+C to stop

@MarionMoseby Thank you!

@MarionMoseby Thank you!

Thank you for the fast merge!!


DOM isn't finished rendering when initial filteringEnd is triggered

I'm trying to get a list of visible items using $('.filtr-item:not(.filteredOut)') but the filteredOut class hasn't been written to the DOM when the initial filteringEnd event is triggered. The items are hidden though, opacity: 0, etc.
I have to set an arbitrary timeout to ensure the class is present like this:
$filterizd.on('filteringEnd', function () {
    setTimeout(function () {
        // At this point the `filteredOut` class `should` be applied to the grid items that are hidden
    }, 250);
});

Is there a more precise way to get a list of the filtered out element from filterizr?

All timing issues with events should be resolved in v2.2.0 onwards. Also many new features have been added.

Hello there and thank you for the wonderful library! It works wonders except for the filteringEnd callback. I have the same problem as above but only on Blink-based browsers (Firefox and all of its clones works without a problem).
What I'm trying to achieve is to remove the filtered out items from the tabindex. My code works on all browsers but when I press on the "All" button, Blink-based browsers doesn't update the tabindex until I press a second time. I can fix the problem with a setTimeout of 500ms but it's not ideal.
In short, filteringEnd works good on all filters except "All", where there is short delay (around 400-500ms). Only on Blink-based browsers.
Any idea what might be the problem? I'm using v2.2.3
Here's my code:
let filtrItem = document.getElementsByClassName("filtr-item");
let fL = filtrItem.length;

for (let i = 0; i <= fL; i++) {
   if (filtrItem[i].classList.contains("filteredOut")) {
      filtrItem[i].setAttribute("tabindex", "-1");
   } else {
      filtrItem[i].setAttribute("tabindex", "0");
   }
}


Release 0.20.1

Cherrypicks on 0.20.0 to make 0.20.1:

Don't block etcd client #10427
Revert "Remove raw binaries from distro that are already included in … #10437
Revert "Set resource limit for both heapster and influxdb container b… #10430
#10150 - No more DNS token

LGTM, other than making sure you meant to have two commits here, one for v0.20.1 and one for v0.20.1-dev. The v0.20.1-dev change is completely clobbering the v0.20.1 change.

Re: 2 commits, yeah, that's what the build/mark-new-version.sh tool does.  And when building, it uses the commit at "v0.20.1" for the tarball.

@k8s-bot test this please

@k8s-bot seems to be ignoring me -- did you run e2es on this?

@k8s-bot ok to test

@a-robinson I haven't run e2es -- I don't know how to run those locally anymore given all the various flaky + break-other-tests tests that run by default.   Perhaps we can pick it up on a jenkins run?

Sure, works for me.