Fix invertCase method

There is currently a method called invertCase that lives in /lib/invertCase.js.
It is incomplete and needs to be fixed!

Given any string, this method will invert the case of any given character:
invertCase('Hello World') // becomes hELLO wORLD

Acceptance Criteria:

Running yarn test invertCase results in tests passing.
You have written a skeleton method for someone else to work on.
You have written tests surrounding your skeleton method.
Running yarn lint does not print any errors to the console!
Optional: write one or two more tests surrounding the method you are solving to account for potential edge cases.

Please include the skeleton of a new method + an accompanying test for someone else to work on at the time of creating a pull request! A pull request will most likely be denied if it does not contain a skeleton method for someone else to work on! For more information, please read the Contributing Guide.
Thank you so much for your contribution!

Hi can I take this ?


vault-secrets-webhook: Support re-authentication with Consul-Template

Is your feature request related to a problem? Please describe.
Right now the vault-token is set via vault-agent during init phase. Consul-Template will use the token and renew it if the token is near the expiration time.
AFAIU, two different use-cases are not handled right now:

kubernetes auth role is configured with a max_ttl of N hours. When max_ttl is reached, the token is not renewable anymore but CT is not able to retrieve a new token and will eventually fail. After restart, CT will use the same expired token, thus not being able to self recover unless a new deployment is triggered.
The token is manually revoked via Vault. The result is similar to the previous use case.

Describe the solution you'd like
Somehow the system should be able to self-recover. We may use vault-agent as a sidecar in order to have it handle the token re-creation (this way, we may be also able to use consul-template 0.20.0 since the renewal of the token would be handled by vault-agent).
Describe alternatives you've considered
Create a custom CT image that includes vault-agent as a daemon. This may be lighter, but is against the one-process-per-container rule.

Hey @jurgenweber - you mind adding your thoughts on this?

consul-template will renew the token. Are you actually experiencing this or theory crafting?
https://github.com/hashicorp/consul-template#configuration-file-format
  # This option tells Consul Template to automatically renew the Vault token
  # given. If you are unfamiliar with Vault's architecture, Vault requires
  # tokens be renewed at some regular interval or they will be revoked. Consul
  # Template will automatically renew the token at half the lease duration of
  # the token. The default value is true, but this option can be disabled if
  # you want to renew the Vault token using an out-of-band process.
  #
  # Note that secrets specified in a template (using {{secret}} for example)
  # are always renewed, even if this option is set to false. This option only
  # applies to the top-level Vault token itself.
  renew_token = true

But there is also a known issue with later versions of consul-template. It is broken in one edge case:
https://github.com/hashicorp/consul-template/issues/1189

I just re-read and I see you are saying 'max_ttl' or token revocation.
A few things, don't set a max_ttl. Is it really that necessary? In an agile environment with elastic capacity management pods do not live long. I know mine don't, I have not even considered a max_ttl. It almost feels like an anti-pattern.
In the case of emergency and you revoke all of your tokens, ok. I feel your live/ready probes should fail and the pod should restart.
I am pretty against yet another side car, the idea was to keep it lite and simple and it is heavy enough as it is.

As per the max_ttl, I'd rather be sure that my tokens are recreated after a maximum amount of time (or after a maximum number of uses, since we have also num_uses attribute available) rather than relying on the fact that all my services will restart often. I may have a long running pod that does not scale nor restarts often, and the token associated to that pod would never expire and will keep on being renewed.
As per revoking, the issue that I see is that, since initContainer is only run on the start/restart of pod, I would need to cause a full pod crash upon CT/app crashing to make this work.
One way of doing this may be to have restartPolicy set to Never, but then I'd have to "crash my pod" on every application error.
AWS ECS has an "essential" attribute on containers inside a service that makes a service fully restart if one of those containers fail, but AFAIK it is not possible to do this on K8s right now.
I agree that creating a new sidecar further complicates things, but right now I see no other solution

Yeah, you can also just HUP consul-template. This can force a renew on revocation, maybe the probes can do that.
I think I just realised where I have been confused with your comments, you are using the term renew in place of getting a new token.
You don't want a renew do you (https://www.vaultproject.io/docs/commands/token/renew.html#token-renew) you just want a new token?

I double checked all my comments, and I confirm what I wrote. I'm using the term "renew" to indicate the vault operation token renew (extend the current validity; token stays the same), and "recreate"/"retrieve a new token" to indicate a new authentication flow (obtain a new token).
If max_ttl is > 0, the token is renewable for that maximum time. For example, a token with TTL 1h, MAX_TTL 5h released at 00:00 can be renewed until 05:00. After that it won't be renewable anymore  and will expire. A new token must then be obtained with a new authentication operation. The same goes for a token with num_uses options set and for a revoked token.
Consul-Template handles the renewal, not the authentication (otherwise we wouldn't need vault-agent in the first place).

Yeah, I get it.
Long running work loads sounds like a pet. :)
In the end it is an outlier that is not answered, even by the people that invented the pattern. I just implemented it in the webhook (google Seth Vargo from Vault/Google).
To me/us/my project, I don't need to answer this and consider it scope creep, we are happy with no max_ttl and new deployments and pod restarts.

It looks like there is a "period" option which can be provided when creating a role.
As per the official documentation:

Period (string: "") - Duration in either an integer number of seconds (3600) or an integer time unit (60m). If set, the token generated using this AppRole is a periodic token; so long as it is renewed it never expires, but the TTL set on the token at each renewal is fixed to the value specified here. If this value is modified, the token will pick up the new value at its next renewal.

Wouldn't this solve the issue? As long as consul-template renews the token...

@devlounge by using "period" the token will never expire. This is actually similar to the TTL: until the token is renewed (within the TTL) it will not expire.
max_ttl is used to force the clients (consul-template, in this case) to obtain a new token because the old one will expire no matter what.

For long running pods I cannot have a token ever expiring so would it be this option?

If you create the Kubernetes Role without specifying max_ttl  (or setting it to 0), your long-running pod will work without issues, since Consul-Template is capable of automatically extending the token-lease. There is no need to set "period".
As per specific credentials (eg. mysql dynamic credentials), Consul-Template handles ttl and max_ttl correctly (renewing leases when possible and generating new credentials when the old ones are near expiration).
This issue is related to the error you will encounter when you set max_ttl. If you are experiencing other problems, they should probably be discussed in a different issue.


2 of 2 React Hydration — Error 2 of 3 errors in Admin view: Unhandled Runtime Error: Error: Hydration failed because the initial UI does not match what was rendered on the server.

Describe the bug
2 of 2 React Hydration — Error 2 of 3 errors in Admin view: Unhandled Runtime Error: Error: Hydration failed because the initial UI does not match what was rendered on the server.
To Reproduce
Steps to reproduce the behavior:

Go to Admin view

Expected behavior
Error message without the stack trace.
Screenshots
2 of 2 React Hydration — Error 2 of 3 errors in Admin view: Unhandled Runtime Error: Error: Hydration failed because the initial UI does not match what was rendered on the server.

 2 of 3 unhandled errors

Unhandled Runtime Error
Error: Hydration failed because the initial UI does not match what was rendered on the server.

See more info here: https://nextjs.org/docs/messages/react-hydration-error

Call Stack
throwOnHydrationMismatch
node_modules/react-dom/cjs/react-dom.development.js (12507:0)
tryToClaimNextHydratableInstance
node_modules/react-dom/cjs/react-dom.development.js (12535:0)
updateHostComponent
node_modules/react-dom/cjs/react-dom.development.js (19902:0)
beginWork
node_modules/react-dom/cjs/react-dom.development.js (21618:0)
beginWork$1
node_modules/react-dom/cjs/react-dom.development.js (27426:0)
performUnitOfWork
node_modules/react-dom/cjs/react-dom.development.js (26557:0)
workLoopSync
node_modules/react-dom/cjs/react-dom.development.js (26466:0)
renderRootSync
node_modules/react-dom/cjs/react-dom.development.js (26434:0)
performConcurrentWorkOnRoot
node_modules/react-dom/cjs/react-dom.development.js (25738:0)
workLoop
node_modules/scheduler/cjs/scheduler.development.js (266:0)
flushWork
node_modules/scheduler/cjs/scheduler.development.js (239:0)
MessagePort.performWorkUntilDeadline
node_modules/scheduler/cjs/scheduler.development.js (533:0)

Desktop (please complete the following information):

OS: Mac
Browser: Chrome
Version: Version 114.0.5735.198 (Official Build) (x86_64)

Additional context
Relates to
https://github.com/freeCodeCamp/classroom/issues/134
https://github.com/freeCodeCamp/classroom/issues/359
https://github.com/freeCodeCamp/classroom/issues/361

Hi @theGaryLarson @Komal914 @sijin-raj @GuillermoFloresV
If @theGaryLarson and/or @Komal914 are looking for additional issues to solve, I reported:
• https://github.com/freeCodeCamp/classroom/issues/359
• https://github.com/freeCodeCamp/classroom/issues/360
• https://github.com/freeCodeCamp/classroom/issues/361
Thank you!

Related information from
https://codedayorg.slack.com/archives/C05E350DQH4/p1688894693666219?thread_ts=1688836862.909659
@Komal Kaur @sijin @Gary Larson
If I were in your shoes, below is how I would go about it:

Before considering a solution, I would seek to understand the problem clearly first:

Before skipping ahead to the solution phase and diving into the codebase such as error.js, which is probably at shallower abstraction layers closer to the surface and the user interface…

First, I would want clarity about the error messages and their contexts, which are probably at deeper abstraction layers below the surface and user interface.

For example:
Error messages 1 and 2:
The hints from the messages may help, specifically the keyword Hydration
Error message 3:
The hints from the error message may help, specifically the keyword Boundary
Error messages 1 and 2:

Unhandled Runtime Error
Error: Hydration failed because the initial UI does not match what was rendered on the server.

See more info here: https://nextjs.org/docs/messages/react-hydration-error

Google search of:

Error: Hydration failed because the initial UI does not match what was rendered on the server.

Points to
https://stackoverflow.com/questions/71706064/react-18-hydration-failed-because-the-initial-ui-does-not-match-what-was-render

I have been experiencing the same problem lately with NextJS and i am not sure if my observations are applicable to other libraries. I had been wrapping my components with an improper tag that is, NextJS is not comfortable having a p tag wrapping your divs, sections etc so it will yell "Hydration failed because the initial UI does not match what was rendered on the server". So I solved this problem by examining how my elements were wrapping each other.

Which points to
https://github.com/facebook/react/issues/24519#issuecomment-1122780621

This seems to be expected behavior? SSR cannot work with improper tag nesting as per the HTML spec, the browser's parser won't accept it, and the whole point of SSR is to have the browser parse the initial document structure for you without using any JS. Client side rendering can work with improper tag nesting because the DOM apis do allow creating these invalid nestings "by hand" (with document.createElement, appendChild, etc.).
There is no way to create a raw HTML document that nests a  directly inside a  using static markup, so there's no way to do it with SSR.
So this situation is a warning for client side rendering, an error for SSR, and a warning for hydration; but the only way to continue the "hydration" is to blast away all of the DOM so far because it will be wrong due to invalid nesting.

In error messages 1 and 2, a keyword is Hyrdation.
The referenced web link in error messages 1 and 2 is:
https://nextjs.org/docs/messages/react-hydration-error

Text content does not match server-rendered HTML
Why This Error Occurred
While rendering your application, there was a difference between the React tree that was pre-rendered (SSR/SSG) and the React tree that rendered during the first render in the Browser. The first render is called Hydration which is a feature of React.
This can cause the React tree to be out of sync with the DOM and result in unexpected content/attributes being present.
Possible Ways to Fix It
In general, this issue is caused by using a specific library or application code that is relying on something that could differ between pre-rendering and the browser.
An example of this is using window in a component's rendering.
Another example:
Invalid HTML may cause hydration mismatch such as div inside p.

Error message 3 of 3:

Unhandled Runtime Error
Error: There was an error while hydrating. Because the error happened outside of a Suspense Boundary, the entire root will switch to client rendering.

In error message 3, a keyword is Boundary.
Hence a Google Search for boundary in React leads to:
https://react.dev/reference/react/Component#catching-rendering-errors-with-an-error-boundary

Catching rendering errors with an error boundary
By default, if your application throws an error during rendering, React will remove its UI from the screen. To prevent this, you can wrap a part of your UI into an error boundary. An error boundary is a special component that lets you display some fallback UI instead of the part that crashed—for example, an error message.

https://nextjs.org/docs/pages/building-your-application/configuring/error-handling

Handling Client Errors
React Error Boundaries is a graceful way to handle a JavaScript error on the client so that the other parts of the application continue working. In addition to preventing the page from crashing, it allows you to provide a custom fallback component and even log error information.
To use Error Boundaries for your Next.js application, you must create a class component ErrorBoundary and wrap the Component prop in the pages/_app.js file. This component will be responsible to:

Render a fallback UI after an error is thrown
Provide a way to reset the Application's stat
Log error information

https://github.com/freeCodeCamp/classroom/pull/398
lgtm as a good enough solution because Admin view isn't intended for Search Engine Optimization (SEO).
I don't know why the errors was happening in the first place, but it may not matter if Server Side Rendering can be disabled for the Admin view.

This error no longer happens after #401

Please contact @GuillermoFloresV if you have further questions about this. Thanks!


Fix some of the licensing issues

Instead of hardcoding LPIC and STR# sections, attempt to generate them based on reference TypeScript implementation.
Note, that this only covers only cases specified on the newly added test case. Other languages are still not working and require further investigation.
Fixes #56, #57.

Ping @freakboy3742

@ABBAPOH My apologies - I've been tied up trying to wrap up some other work. I promise I haven't forgotten about this - but it's a big patch that is going to need a lot of focus to review.

Thanks for that update - that's very helpful for testing. I've corrected the problem with Italian (it had the wrong language code), plus a few other tweaks, including having a license for each supported language code.
There's still 2 issues I can see:

Some of the languages that show in the dialog aren't using title case. The dialog has "English" and "Deutsch", but "français" and "italiano" (not "Français" and "Italiano"). I can't work out where the lower case is coming from, because the labels provided by the code are all title case.
The list of languages only includes one license from each distinct language - even though there's a license for AU, UK, IE, US and SG English, only the UK license is being displayed. I can't work out why it's UK, either - it's not first in the file, it's not numerically first by ID, it's not alphabetically first (by name, or by language code)...

I can't spot anything obviously different between what this code is doing and what the typescript project you've referenced is doing... It's almost as if these labels are coming from something internal.
I'm happy to merge this as-is, and treat these as as a known bugs/limitations - but if you're able to identify the source of the problem, it would be very helpful.

Yes, let's merge this as-is, I'll try to find some time to investigate later. We have a pending release in our project so fixing at least some languages would be a huge improvement.

It's almost as if these labels are coming from something internal.

I have a theory that our labels are broken in some way and thus dmg falls back to internal labels, but I don't see what's wrong. One would need to compare the resulting file created by node code and see what's different.
Another theory I had is that resource ID's actually matter but I could not prove that - and didn't merge the code that matches those id to the id's in that csv table.
Good point about the possibility that language order might influence somehow, I didn't think of that.


Be able to re-use windows/splits by plugins

We can ask for new windows or split-view panels to be shown from API calls.
But as we use these more, we need some other controls as well. Particularly, to reuse existing splits/windows if open when opening a new split or window. This will stop many windows piling up when calling the same commands in quick succession.
I can think of various potential solutions, but as I don't know the relative complexity of these, I'll restrict myself to giving some more detailed use cases.
SearchExtensions' /quickSearch and /searchOver* commands
These commands open a new split window as a convenience when they run. When you run the command again (or via the psuedo-button at the top of the note), another split window is created, even when there's an existing split showing the same note.
I want a way to say "show note in new split, unless that note is already open in a window, in which case just give it focus".
Reviews' /project lists command
This opens an HTML window. If it's run again, it re-uses the same window -- this is what I want in the first use case above.
But it's easier here, as there's a limit of just 1 HTML window at a time.
When that limit is removed, this also needs a way to say 'reuse'.
NoteHelpers' /open current note new split
To make things slightly harder, this command shows the need to be able to deliberately open a second split view of the same note as is already open in the Editor.

Yes, this is much-needed. Here's an idea. Assuming there can only be one Editor at at time:
Editor.windows() =>
[ 0: { id:XXX type: "main", note: {TNote}
  1: { id: YYY type: "split", note: {TNote}
  2: { id: ZZZ type: "floating", note: {TNote} ]

const note = Editor.focusWindow(id) // brings it to front, makes it Editor, as if someone clicked on it, returns the TNote of the window focused so you can double-check that it's the one you want (or null/false? if it was not able to find the window ID you asked for)
In this way, we could write a helper like this:
const getWindowWithFilename = (filename:string) => Editor.windows.find(w=>w.note.filename === filename)
const focusWindowWithFilename = (filename:string) => Editor.focusWindow(getWindowWithFilename(filename))

I'd also like to pose a question...should you be able to close a split or floating window via plugin? I think you should. In that case, the companion to Editor.focusWindow(id) would be  Editor.closeWindow(id)

type === main|split|floating|html

when you open a window using the API there should be an optional param that you give it a name so you can know which it is later


Fix for MSVC compilation when X86_ defines are enabled

This adds several patches to compile it with MSVC when the intel X86* defines are enabled.
I have successfully compiled it with:
X86_PCLMULQDQ_CRC
X86_SSE2_FILL_WINDOW
X86_CPUID
X86_SSE4_2_CRC_HASH
UNALIGNED_OK
UNROLL_LESS

This looks good to me, but I want a win32 user to test it before I merge it.
@mtl1979 do you have time to do a little test?
Also @matbech I'd love to see some numbers for before and after performance for your system if possible. I know what these patches enable, but everyone loves numbers :grinning:

Is there a standardized performance test app available?

I can't seem to checkout the branch... git fetch can't find it...

Performance results for:
Codename		Ivy Bridge
Specification		Intel(R) Core(TM) i7-3770
32-bit
zlib-ng
Compressing data: raw data 51220480, compressed 19089128, factor 0.37, compression level (default = -1) -1, buffer size 32768, time 2625ms
zlib-ng patch
Compressing data: raw data 51220480, compressed 19077704, factor 0.37, compression level (default = -1) -1, buffer size 32768, time 1594ms
zlib-ori asm
Compressing data: raw data 51220480, compressed 19089124, factor 0.37, compression level (default = -1) -1, buffer size 32768, time 2047ms
64-bit
zlib-ng
Compressing data: raw data 51220480, compressed 19089128, factor 0.37, compression level (default = -1) -1, buffer size 32768, time 1969ms
zlib-ng patch
Compressing data: raw data 51220480, compressed 19077704, factor 0.37, compression level (default = -1) -1, buffer size 32768, time 1406ms
zlib-ori asm
Compressing data: raw data 51220480, compressed 19089124, factor 0.37, compression level (default = -1) -1, buffer size 32768, time 1984ms

For anybody that wants to run their own tests:
https://github.com/matbech/zlib-perf
includes the binaries

Simple large file speed test with level 9
Original size:<PHONE_NUMBER>0
(matbech)
Compress time: 37m40.977s
Compressed size:<PHONE_NUMBER>
Uncompress time: 7m36.393s
(dead2)
Compress time: 46m15.234s
Compressed size:<PHONE_NUMBER>
Uncompress time: 8m25.673s

This looks good to me. Could you rebase it and preferably clean up the commits?
Also now that you cleaned up the old asm code in cpuid, I agree that the preprocessor test would be nicer inside the function instead of enclosing the whole function.

I'm retracting this patch because I do not see it as a good fit for this repository.


timer: 1.4.1 -> 1.4.4

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/timer-caarlos0/versions.
meta.description for timer is: sleep with progress
meta.homepage for timer is: https://github.com/caarlos0/timer
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.4.4 with grep in /nix/store/rky21i05zxzczwyicmna7kclqg9317yi-timer-1.4.4
found 1.4.4 in filename of file in /nix/store/rky21i05zxzczwyicmna7kclqg9317yi-timer-1.4.4

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

timer

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/rky21i05zxzczwyicmna7kclqg9317yi-timer-1.4.4 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A timer https://github.com/r-ryantm/nixpkgs/archive/a59600b3bbdb1f2b7c159f3fa701466bc0f77558.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/a59600b3bbdb1f2b7c159f3fa701466bc0f77558#timer

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/rky21i05zxzczwyicmna7kclqg9317yi-timer-1.4.4
ls -la /nix/store/rky21i05zxzczwyicmna7kclqg9317yi-timer-1.4.4/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

timer

Maintainer pings
cc @zowoq @caarlos0 for testing.

Result of nixpkgs-review pr 326963 run on x86_64-linux 1

1 package built:

timer


options to filter acronyms that are used only a single time

Sometimes you need more control over when the first entry is printed.
For example, you use an acronym in a figure in short form, but still want the next appearance to be the long form. The Latex package solves this by providing a macro. I think something similar to that by adding another optional argument ignore-use could be useful.
I think an option for make-glossary to make the long form print for the first appearance optional would be great, too.
And last, I think options should be provided to filter acronyms that are used only a single time. I'm not sure on the details of this one yet though.
I can try to implement these myself, but I first wanted to hear your thoughts.

Hello @indicatelovelace,
thanks for sharing your thoughts!

For example, you use an acronym in a figure in short form, but still want the next appearance to be the long form.
if you want to force the short-form you should be able to use

#gls(key, long: false) // short+suffix

I think an option for make-glossary to make the long form print for the first appearance optional would be great, too.

I actually have a working version of this in my fork, but I haven't had the time to discuss this (I'll create an issue).

And last, I think options should be provided to filter acronyms that are used only a single time.

If by that, you mean counting the back-references to each acronym, then it is already possible using the internal API. Something like this maybe:
#import "@preview/glossarium:0.4.0": count-refs, __glossary_entries
#context {
    // All entries counts
    let entries = __glossary_entries.get()
    for (key, e) in entries {
      str(e.key) + " " + str(count-refs(e))
      linebreak()
    }
    linebreak()

    // Single-use
    let single_use_entries = entries.values().filter(e => count-refs(e) == 1)
    for e in single_use_entries {
      str(e.key) + " " + str(count-refs(e))
      linebreak()
    }
 }

If you have time, I think @slashformotion wouldn't refuse any contribution to the documentation or the user API!

@indicatelovelace I will divert the issue of user control over first time usage or single usage to #57


Create youtube.py

@abhpd Can you merge the file to the repo, I see a hacktoberfest-accepted tag, but you haven't merged the repo. Thanks in advance


NEWS: Prepare for 0.10 release

Signed-off-by: Thomas Graf<EMAIL_ADDRESS>

Looks good! #969 could probably still go in there.

Good point, will add


Notifications like Slack (Windows)

Hey!
On windows, it's very likely that the user does not have notifications enabled. As a workaround, slack creates a custom notification window (see screenshot). I was wondering if anyone knows how to approach making this type of notification (other than creating a smaller browser window located at the bottom right of the screen). Ideally wouldn't have to spin up a custom notification window — also Slack's window doesn't have the native [minimize, maximize, close] bar on top.

Thanks in advance!

Pan

Pan

I also looking for the same, like colors and other stuff. any luck?

@Nealsoni00 do those notifications only exist in the Electron app? I believe what they're doing is creating a transparent window to emulate a notification window - so the actual window is larger than what is shown but the transparent area ignores clicks. Does that sound accurate?

@Nealsoni00 do those notifications only exist in the Electron app? I believe what they're doing is creating a transparent window to emulate a notification window - so the actual window is larger than what is shown but the transparent area ignores clicks. Does that sound accurate?

The notifications exist outside a main slack window (and are displayed from a background toolbar task). A transparent browser window would work but slack's icon does not appear on the toolbar as a transparent browser window would — so either there is a configuration variable to prevent that from happening or they have a new way to do it. It also enters from the right of the screen like a normal notification.

slack's icon does not appear on the toolbar as a transparent browser window would

I'm confused by what you mean.

It also enters from the right of the screen like a normal notification.

Once you have a transparent window in place that's trivial - just a normal CSS animation moving the div containing the notification within the bounds of the transparent window. I've not done this personally - this is just how I imagine this is being solved by Slack, Discord, etc.

Apologies, meant to say that the slack icon does not appear on the Windows 10 taskbar — a transparent browser window would appear on the taskbar.
That animation makes sense and would be super easy to do — thank you!

@Nealsoni00 actually it need not appear on the taskbar either! Electron is pretty damn cool.
Check the skipTaskbar option.


wesnoth: add checkver and autoupdate

Please let me know if there are any problems. Thanks.

Hash extraction be simplified to $url.sha256.

Hash extraction could be simplified to $url.sha256.

Thanks for the suggestion.
They provide SHA-256 checksum file for Linux and Mac versions, but not for Windows version (not sure why). Therefore $url.sha256 does not work for this one.
(see: https://sourceforge.net/projects/wesnoth/files/wesnoth-1.14/wesnoth-1.14.7/)

On the official page they provide the checksum file for windows:
https://files.wesnoth.org/releases/wesnoth-1.14.7-win32.exe.sha256
So https://files.wesnoth.org/releases/wesnoth-$version-win32.exe.sha256 is less prone to errors that a regex. :smile:

Updated manifest:
{
    "homepage": "https://www.wesnoth.org/",
    "description": "Turn-based singleplayer and multiplayer strategy game with a high fantasy theme",
    "version": "1.14.7",
    "license": "GPL-2.0-or-later",
    "url": "https://downloads.sourceforge.net/project/wesnoth/wesnoth-1.14/wesnoth-1.14.7/wesnoth-1.14.7-win32.exe#/dl.7z",
    "hash": "31b2acfa65cb383012c04c8adbe903b6c3a6ef6a7a32d02a5c49e2e8fcd8ca26",
    "shortcuts": [
        [
            "wesnoth.exe",
            "The Battle for Wesnoth"
        ]
    ],
    "checkver": {
        "url": "https://wiki.wesnoth.org/Download",
        "regex": "wesnoth-([\\d.]+)-win32.exe"
    },
    "autoupdate": {
        "url": "https://downloads.sourceforge.net/project/wesnoth/wesnoth-$majorVersion.$minorVersion/wesnoth-$version/wesnoth-$version-win32.exe#/dl.7z",
        "hash": {
            "url": "https://files.wesnoth.org/releases/wesnoth-$version-win32.exe.sha256"
        }
    }
}

On the official page they provide the checksum file for windows:
https://files.wesnoth.org/releases/wesnoth-1.14.7-win32.exe.sha256

Thanks for the information.


Put the tutorials out of miden-base and into miden-client

The tutorials in our docs are currently under miden-base (https://github.com/0xPolygonMiden/miden-base/tree/main/docs/introduction).
It makes more sense to put them into the miden-client repo (https://github.com/0xPolygonMiden/miden-client/tree/main/docs). This will make it easier for the client team to update the tutorials, e.g., when there is a change in the CLI.

Closed by https://github.com/0xPolygonMiden/miden-client/pull/620


Pytorch support

I am working on adding support for pytorch. A good basis for this work is @pmeier's wrapper code at  https://github.com/data-apis/array-api-tests/compare/master...pmeier:array-api-tests:pytorch, and also @AnirudhDagar scipy pytorch demo https://github.com/scipy/scipy/compare/main...AnirudhDagar:scipy:array-api-demo.

Keep in mind I haven't updated my fork in ~6 months.

This was fixed by gh-14. PyTorch support is well-exercised by now.


Some roms only show part of the program on screen

(I am using a dsi xl with twilightmenu++ and unlaunch)
first program that does this is BOOT.rom

second program that does this is turye.rom

asma.rom doesn't work at all

the next rom is left.rom

the next rom is nasu.rom

Yes, that's normal. A lot of uxn programs are written for a 320x240 screen at minimum, and aren't properly adapted for the DS's 256x192 resolution.
asma.rom requires a command line argument to assemble a file, IIRC, which is not of too much use in a DS/DSi context.


Is it possible to apply Negspacy over token?

Hi,
How can I apply negations on the token? is it possible?
I tried following but it ended up in error.
`for token in doc:
print(token.text, token._.negex)

The error is
AttributeError                            Traceback (most recent call last)
 in
1 for token in doc:
----> 2     print(token.text, token._.negex)
~/anaconda3/envs/python3/lib/python3.6/site-packages/spacy/tokens/underscore.py in getattr(self, name)
33     def getattr(self, name):
34         if name not in self._extensions:
---> 35             raise AttributeError(Errors.E046.format(name=name))
36         default, method, getter, setter = self._extensions[name]
37         if getter is not None:
AttributeError: [E046] Can't retrieve unregistered extension attribute 'negex'. Did you forget to call the set_extension method?
`

Unfortunately, no as it is an extension for "spans" only.


Minimal workflow for first release

Description of feature
Hi,
Daniel and I talked about realising the magmap with minimal features and then continue to work on the pipeline based on what we need and what other users might want to add.
We should take time next week to decide on what is a minimal workflow so we can focus on the release as soon as possible.

prokka
gtdb-tk
checkM2
Sourmash is optional

Solved


Unable to find a Person with lastName "Richards" in the sentence "Cecile Richards, the president, is cool.".

When the sentence is changed to read "Cecile Richards, a president, is cool.", the lastName is correctly found to be "Richards".
A Person with firstName "Cecile" is always found.

hey ryan, thanks - are you using version 6 or 7?
i've been re-writing all the person-parsing stuff on v7, and it's much better. They api though, is pretty rickety still.
you can whitelist 'richards' as a person by passing-in a custom lexicon, if you want a dirty-fix

@spencermountain I am having very similar (if not exact) issues with v7
Let's take this text as an example:
Manchester United have rejected a £19 million bid from Everton for Morgan Schneiderlin, as the January transfer window continues to heat-up.

As reported by the Guardian, United are looking to recoup the £24 million they paid for Schneiderlin back in the summer of 2015, with the French midfielder struggling badly for game time under Jose Mourinho this season. With that in mind, the club turned down Everton’s first official offer just days into the winter transfer window.

Get 24 Hours of Sky Sports and watch all of the action live with NOW TV for £6.99. Sign up and get a 10% Discount.

The newspaper reports that the Toffees’ interest in Schneiderlin has been known for several weeks, as Ronald Koeman looks to strengthen his midfield options going into the second half of the season. The Dutchman worked with the 27-year-old during his spell in charge of Southampton, so knows what he’s capable of at this level.

With Idrissa Gueye now heading off to the African Cup of Nations and James McCarthy’s fitness still a cause for concern, Everton are eyeing several additions to their squad this month, while West Bromwich Albion are also believed to be interested in Schneiderlin’s services, according to the paper.

The French international was a consistent figure under Louis van Gaal last season, featuring alongside the likes of Michael Carrick, Ander Herrera and Bastian Schweinsteiger in midfield, but his situation has drastically changed this term, with Paul Pogba arriving at Old Trafford for a world-record fee in the summer.

Schneiderlin has won 33% of his average duels and registered an average pass accuracy of 87% in three Premier League appearances this season, as United sit sixth on 39 points, one behind the top four and nine clear of Everton in seventh.

Next up for them is a home clash with Reading in the FA Cup on Saturday, before taking on Hull City at Old Trafford.

64.3% of Morgan Schneiderlin’s passes have been forward in the Premier League this season.

right now r.match('(#Person|#Place|#Organization)').data() returns pretty good results:
 [ { normal: 'manchester united', text: 'Manchester United' },
  { normal: 'morgan', text: ' Morgan' },
  { normal: 'jose', text: ' Jose' },
  { normal: 'mourinho', text: ' Mourinho' },
  { normal: 'ronald', text: ' Ronald' },
  { normal: 'koeman', text: ' Koeman' },
  { normal: 'james', text: ' James' },
  { normal: 'mccarthy\'s', text: ' McCarthy's' },
  { normal: 'louis', text: ' Louis' },
  { normal: 'van', text: ' van' },
  { normal: 'gaal', text: ' Gaal' },
  { normal: 'michael', text: ' Michael' },
  { normal: 'carrick', text: ' Carrick,' },
  { normal: 'paul', text: ' Paul' },
  { normal: 'pogba', text: ' Pogba' },
  { normal: 'morgan', text: ' Morgan' } ]

however, it would be better/nicer if instead of first name and last names being scattered all over place, they would be grouped - Jose Mourinho, Ronald Koeman, James McCarthy’s, Louis van Gaal,  Michael Carrick, Paul Pogba etc
cause right now I have to write extra nlp_compromise code that groups first names and last names together and I am only using very simple logic where I am assuming they are presented in order (otherwise there is no way to tell which first name goes with which last name), but that still is not 100% reliable (cause nlp_compromise could present them not in order and I wouldn't know), just good enough :)
the old v6 .topics() function would have returned this (for the same text):
text topics  [ { count: 4, text: 'everton' },
  { count: 3, text: 'schneiderlin' },
  { count: 2, text: 'summer' },
  { count: 2, text: 'trafford' },
  { count: 2, text: 'morgan schneiderlin' },
  { count: 1, text: 'albion' },
  { count: 1, text: 'cup of nations' },
  { count: 1, text: 'premier league' },
  { count: 1, text: 'idrissa gueye' },
  { count: 1, text: 'guardian' },
  { count: 1, text: 'manchester' },
  { count: 1, text: 'discount' },
  { count: 1, text: 'paul pogba' },
  { count: 1, text: 'toffees\' interest' },
  { count: 1, text: 'bastian schweinsteiger' },
  { count: 1, text: 'southampton' },
  { count: 1, text: 'ander herrera' },
  { count: 1, text: 'jose mourinho' },
  { count: 1, text: 'michael carrick' },
  { count: 1, text: 'james mccarthy' },
  { count: 1, text: 'ronald koeman' },
  { count: 1, text: 'fa cup' },
  { count: 1, text: 'hull city' },
  { count: 1, text: 'premier league appearance' },
  { count: 1, text: 'louis-van gaal' },
  { count: 1, text: 'he\'s' },
  { count: 1, text: 'tv' },
  { count: 1, text: 'west bromwich' },
  { count: 1, text: 'dutchman' } ]

which is clearly better at grouping first names and last names together (v7 doesn't do it at all, even though in the v7 documentation examples it clearly shows that it does)

so what would make v7 named entity recognition perfect is grouping first and last names into full names and also ability to extract more generic topic keywords like the old v6 .topics() function (e.g. ‘football’, ‘premier league’, etc), but without extracting pointless keywords that old v6 .topics() function sometimes extract like 'guardian' and 'he's' or 'tv', 'summer' etc.

hey, this is fixed in 7.0.9
nlp('Cecile Richards, a president, is cool.').people().data()
cheers


NestJS guard crashing server when canActivate is false

Hello guys,
I am facing an issue while trying to implement a NestJS guard.
Requirement
In the .env file I have a list of usernames to be considered as admin.
Some of the commands can only be used by admins.
Solution
Add a IsAdminGuard checking if the incoming from.username is contained in the admins array.
Error
throw new common_1.ForbiddenException(constants_2.FORBIDDEN_MESSAGE);                       ^ ForbiddenException: Forbidden resource     at canActivateFn (/Users/sergioarrighi/Documents/workspace/nordic-whales-bot/node_modules/@nestjs/core/helpers/external-context-creator.js:157:23)     at processTicksAndRejections (node:internal/process/task_queues:96:5)     at target (/Users/sergioarrighi/Documents/workspace/nordic-whales-bot/node_modules/@nestjs/core/helpers/external-context-creator.js:73:31)
Expected behaviour
The request gets rejected and server stays operational
To reproduce you can use my guthub repo.
https://github.com/SergioArrighi/nordic-whales-bot
The main service is here.
While the guard is this one..
To reproduce

install the app.
Create a .env.local file with these properties
TELEGRAM_BOT_TOKEN=
ADMINS=[,,...]
Run the app with: npm run serve:local
Send the command /list with a user not listed as admin

Thanks for the terrific job and best regards

Any solutions?

I've fixed this problem this way. May be useful to someone else?
safeguard.interceptor.ts
export abstract class SafeGuardInterceptor
  implements NestInterceptor, CanActivate
{
  abstract canActivate(
    context: ExecutionContext,
  ): boolean | Promise<boolean> | Observable<boolean>;

  async intercept(context: ExecutionContext, next: CallHandler<any>) {
    let result = false;
    const returnValue = this.canActivate(context);
    if (isObservable(returnValue)) {
      returnValue.subscribe((value) => {
        if (value) {
          return next.handle();
        } else {
          return of(undefined);
        }
      });
      return of(undefined);
    } else {
      result = await returnValue;
      if (result) {
        return next.handle();
      }
      return of(undefined);
    }
  }
}

type Class<I, Args extends any[] = any[]> = new (...args: Args) => I;

export const UseSafeGuards = (...arr: Class<SafeGuardInterceptor>[]) =>
  UseInterceptors(...arr);

admin.guard.ts
@Injectable()
export class AdminGuard extends SafeGuardInterceptor {
  canActivate(
    context: ExecutionContext,
  ): boolean | Promise<boolean> | Observable<boolean> {
    const telegraf = context.getArgByIndex<TelegrafContext>(0);
    // user is a property injected by some middleware, any logic can be used
    return !!telegraf.user?.isAdmin;
  }
}

And used it like other Guards, for updates:
@Update()
@UseSafeGuards(AdminGuard)
export class AdminUpdate {
    // commands or other stuff here
}

based on the sample given, it seems only can use throw new TelegrafException instead of return false


InverseTransform only on prediction, to avoid nan loss

Hi again, and thanks for the implementation of the 'ms' feature.
Two questions:

Is it possible to only inversely transform the numbers of a prediction? Running inverse transform or disabling scaling on an entire training explodes the gradient with no effort. In short; is it possible to only do an inverse transformation on the pred_len?

With 'ms' enabled, how would one expand on it to predict three outputs instead of a singular, is it as simple as feeding a list to the target, which is now defined as 'OT' ?

I hope you can help out, best regards, and again thanks for your contribution!

*For other curious people, the inverse transformation can be done only on the validation /prediction set by, adding this in the StandardScaler().transform method in tools.py.
np.save('std.npy', std )
np.save('mean.npy', mean)
and then later, once you want a value inversely transformed, do:
s= np.load('std.npy', std )
m = np.load('mean.npy', mean)
inverted_data = data * s + m
I am still looking for a way to expand 'ms' to do multiple outputs (3 in my case)

Possible answer to question 2:
Going to dataloader.py, data_y is to my understanding the target-data, so instead of:
self.data_y = self.data_y[:, [target_index]]
Which, serves a prediction on a singular target.
We can instead slice data_y to get predictions to the first 3 columns in our dataset:
self.data_y = self.data_y[:, 0:3]
I'll let this issue stay open, to get confirmation that my observations are true


Add compact output

Hey!  I've been heavily using tracing recently with both tracing glog and other tracing integrations.
I've been finding the combination somewhat unwieldy because that sweet sweet span context that makes tracing so helpful is making tracing-glog's output unreadable, even on my 4k 32" monitor, it's just too long and there are wayyy too many special characters, especially if I wind up debug printing a rust struct in my message (not even in my context).
I'm pretty sure I'm not alone, because of tracing adoption issues seen on other teams (with_span_context(false)).  People are finding the output so verbose that they're disabling it, forgetting they disabled it, and then getting confused when tracing "doesn't work" when they try to add context later.

Rustdoc preview


IIIF Support

Starting a PR to include libvips' new IIIF support as per: https://github.com/libvips/libvips/issues/1465#issuecomment-552487666
However, with the changes included in this PR as per https://github.com/lovell/sharp/issues/1335#issuecomment-552613752 it doesn't generate the tiles and info.json...
I thought passing the correct layout should now work? e.g.
    sharp("test.jpg")
    .jpeg()
    .tile({
      size: 512,
      layout: "iiif"
    })
    .toFile("info.json");

As far as I understand it, the layout should be getting passed here?
https://github.com/lovell/sharp/blob/master/src/pipeline.cc#L966

Coverage remained the same at 100.0% when pulling 87b328e52ec949a7b57bcd6c5d31d9d683dddc26 on edsilv:iiif into d5ecc537afa9b5329e79d4a6e50b945dfcf2fcc6 on lovell:master.

Hi Edward, thank you for the PR, I think we'll need to change this logic too:
https://github.com/lovell/sharp/blob/d5ecc537afa9b5329e79d4a6e50b945dfcf2fcc6/src/pipeline.cc#L1380-L1387
Rather than if-else-if-else... we should probably change this whole block to something simpler like the following (untested):
baton->tileLayout = static_cast<VipsForeignDzLayout>(
    vips_enum_from_nick(nullptr, VIPS_TYPE_FOREIGN_DZ_LAYOUT,
    sharp::AttrAsStr(options, "tileLayout").data()));

If you're able to add a test or two as well, that would be perfect.

Please can you target the yield branch to ensure your changes are compatible with the forthcoming N-API support.

I simplified the tile option parsing in commit 51b1432 on the yield branch, so if you rebase against upstream/yield you should hopefully start to see this new option work.

v0.25.0 is now available so I've moved this PR back to the master branch.

Hi, nice! Do you need anything further from me? I was a bit out of my depth on the c++ stuff and winded up needing dynamic tiling using serverless-iiif (also libvips-based). Looking forward to getting IIIF tiling in Sharp and updating biiif!

Thanks for the update. Please can you rebase against the latest upstream/master branch and you should the proposed changes in the PR start to work. If you're able to add a unit test or two as well, that would be great, then we can get this merged and out in the next release.

I've pushed the beginnings of a unit test and tried the outputted tiles here: https://repl.it/@edsilv/osd-test
You can see that some tiles are missing when fully zoomed out.
I've also had to add "preferredFormats": [ "jpeg" ] to the generated info.json as otherwise OSD will look for files ending .jpg by default. To get around that you probably would have to do some gymnastics with IIIFTileSource, but really it would be better if it just worked out of the box with no customisation.
Any chance we could change the default outputted tile format to .jpg not .jpeg?

The JPEG suffix logic at https://github.com/lovell/sharp/blob/master/src/pipeline.cc#L936 will need updating to also include VIPS_FOREIGN_DZ_LAYOUT_IIIF in the list of layouts for which .jpg is used.

I had a quick look at this and inverted the JPEG extension logic via commit cf39fc4 to make this a bit simpler, which should hopefully allow you to continue with this PR.

Have tested that locally and the tiles are now .jpg and the generated info.json works without any modifications. However, I'm getting a timeout error when running npm test, even if I set the timeout to 5 mins:  IIIF layout:Error: Timeout of 300000ms exceeded.
Could this be why I'm seeing missing tiles when fully zoomed out?

The "IIIF layout" test is failing as the call to done() is commented out (as are the assertions).
https://travis-ci.org/github/lovell/sharp/jobs/662551580#L1596

d'oh - sorry, it was a late night!
That's fixed, but still seeing the bug in OSD: https://youtu.be/69oYSDI22ik

Could https://github.com/libvips/libvips/issues/1530 and/or https://github.com/libvips/libvips/issues/1472 relate to this problem?

Some tiles are not available:

(changing scalefactors to scaleFactors didn't make a difference)

The input image<PHONE_NUMBER>_aca715a2ee_o.jpg is 2725px in width. The first failing tile in the image above has an xywh region of 2048,0,678,2048. x:2048 + w:678 = 2726px, 1px more than the full width of the image. Could this be the problem? Libvips is failing to cut that tile because its bounds exceed the width of the image?

Yes, I think this might be a libvips thing. Are you able to reproduce it via the command line?
vips dzsave input output --layout iiif

I downloaded v8.9.1 and am getting the same issue via the command line. I suppose we should flag this with libvips? The explanation above still applies.

Yes please, if you could open an upstream issue in libvips that would be great.
It doesn't stop this PR so when you find a moment, please can you uncomment that lovely unit test code, get the assertions passing then we're good to merge, thank you.

Have fixed the tests and left a comment here: https://github.com/libvips/libvips/issues/1472#issuecomment-600270954

Marvellous, thank you Edward, this will be in v0.25.2.


feature request: add support for elasticsearch as a datasource

🚀 The feature
Deliverables:

Add support for storing the data into elasticsearch
User will specify the db while instantiating the class. Eg:

Using elasticsearch as a datasource
from embedchain import App

app = App(db="es")

Using chroma as a datasource
from embedchain import App

app = App(db="chroma")

If no datasource is specified, we will default to chroma db by default
Make sure that app.query() works as intended and should return reasonable response

Motivation, pitch
Currently, embedchain only supports chroma db as the data source. We want to extend the support to have more vector databases. We want to start by adding support for elasticsearch.
Alternatives
No response
Additional context
No response

I think we should rethink the whole database integration. Since we already have a BaseVectorDb class with subclasses, we should abstract where possible, and only expose streamlined, widely supported methods to the main class, such as ``initialize, add and delete, reset/delete_all, with filter options and metadata.


feat(flavors): ironbank versus upstream container flavors

User Story
As a delivery engineer
I want registry1 or upstream flavored LeapfrogAI packages to be published to GHCR
So that I can deploy hardened containers from IronBank to customer locations that prefer IronBank images
Acceptance Criteria
Given an IronBank version of a LeapfrogAI component image (e.g., kiwigrid) exists
When I deploy the UDS bundle with flavor registry1
Then IronBank images are pulled into the correct applications' Zarf packages, and the resulting UDS bundle
Given a LeapfrogAI component image (e.g., kiwigrid)
When I deploy the UDS bundle with flavor upstream
Then upstream vendor images are pulled into the correct applications' Zarf packages, and the resulting UDS bundle
Usage of the common values files directory and registry1 versus upstream values files must be implemented: https://github.com/defenseunicorns/uds-common/blob/main/docs/uds-package-practices.md#structure
Describe alternatives you've considered
None. This is strictly a customer-preferred solution, and a Made for UDS SHOULD requirement.
Additional context
Example of a flavored Zarf package: https://github.com/defenseunicorns/uds-core/blob/main/src/istio/zarf.yaml
Example of a UDS task for flavor determination: https://github.com/defenseunicorns/uds-core/blob/main/tasks/publish.yaml

The base repo setup for all flavors is here: #937
That PR follows the Made for UDS package recommendations, and fulfills the spirit of the MUST requirement on flavors.


Issue resolved

Normally I wouldn't react to such a harsh comment, but since accusations of spreading malware are serious, even if completely baseless, now I feel like I have to. I know you have deleted your comment by now, so you probably have figured it out yourself, but I still kind of have an obligation to alleviate concerns, in case someone saw it in the meantime, or got an e-mail notification about it like I did.
First of all, this plugin does not contain malware. It is open source, you can check yourself, and even build it yourself from source using the instructions provided if you don't trust the version in the Office store.
I don't use Office anymore, and as a result, the plugin is not really maintained, so bugs may have started appearing in it. That said, JavaScript-based Office plugins, like this one, are, by design, connected to your Microsoft account, and, for your convenience, are automatically reinstalled when you reinstall Office.  You have to remove the plugin from your Microsoft account.
It is a shame that some of the people that Microsoft support is employing don't even know how the software they are supporting works, and they so often resolve to suggest reinstalling everything (I also have similarly abysmal experiences with Microsoft support), but throwing grave accusations at innocent open source developers out of your frustration is really, really not OK.


[AST] Add Primary AssocTypes to Opaque GenericSignature

Now that Primary Associated Types are preserved in the generic signature during type erasure, they also need to be preserved for opaque types. This prevents a crash in cases where we coerce an existential type to an opaque type.
Fixes rdar://110262754

@swift-ci please smoke test

@swift-ci  please smoke test

@swift-ci please smoke test

@swift-ci please smoke test

Self in opaque type generic signature is the same parameter type as in existential signature

Is there any guarantee that they are the same? The opaque type might be declared in a different declaration context.
When I run the test case in the radar, I get this error:
Unhandled coercion:
(bound_generic_enum_type decl=Swift.(file).Result
  (primary_archetype_type address=0x14d9163d8
    (interface_type=generic_type_param_type depth=0 index=1 decl=opaque.(file).S.U@opaque.swift:20:13) name=U
)
  (existential_type
    (protocol_type decl=Swift.(file).Error)))
(dependent_member_type assoc_type=opaque.(file).P.X@opaque.swift:2:18
  (base=generic_type_param_type depth=0 index=0))

It looks like the original bug is that we're ending up with an interface type as toType in coerceToType(). That seems strange and shouldn't happen regardless of what the method being changed here is doing.

Ah I see. In coerceExistential(), we're trying to coerce to a parameterized protocol type that has an interface type as the generic argument:
(lldb) print toType.dump()
(existential_type
  (parameterized_protocol_type
    (base=protocol_type decl=opaque.(file).P@opaque.swift:1:10)
    (dependent_member_type assoc_type=opaque.(file).P.X@opaque.swift:2:18
      (base=generic_type_param_type depth=0 index=0))))

This type shouldn't appear in the constraint system, where all interface types should be substituted with archetypes from the generic environment containing the expression being type checked.

P.X shouldn’t be there at all, it should be Int based on the base type, that’s what @angela-laar is trying to fix.

P.X shouldn’t be there at all, it should be Int based on the base type, that’s what @angela-laar is trying to fix.

There are two distinct problems:

getNonDependentUpperBounds() is returning a type containing interface types, ie a dependent type. This is a regression from a previous change.
We don't try hard enough to compute an accurate upper bound when erasing an opaque return type that is parameterized with an opened existential.

While fixing the second problem would address the immediate issue here, I'm not sure this change of copying the requirements over is correct, because the opaque type is not related to the existential (they might have different protocols, etc). We need to address the first issue regardless.

Yeah, that sounds reasonable. It seems like first point from your list always behaved that way, it just wasn't exposed before because the base type would always be erased down to any P until we started supporting primary associated types in upper bound computation.I hope that you can help @angela-laar to fix this properly.

I’d like to clarify my original comment, and this is something we reached out to @jckarter about previously. It seemed reasonable to take same-type requirements imposed on dependent members form existential signature, match them against what ever parameter in opaque type signature represents “Self” and build a new signature from that. It seemed like the type parameter that represents underlying type of the opaque type mirrors all of the requirements of "Self” and “Self” is always t_0_0 so by substituting “Self” in that signature with t_0_0 from existential signature and transferring all the same-type requirements would have done the trick (and protocol requirements should be the same so they just be dropped as redundant), none of us actually know how to do that properly that’s why I am reaching out.

Here is an example that crashes with the code posted in this PR:
protocol P5<X> {
  associatedtype X
}

protocol P6<Y> {
  associatedtype Y
}

extension P5 {
  func bar() -> some P6<X> {
    K<X>()
  }
}

struct K<Y>: P6 {}

func test<Q, W>(_: Q, _: W, _ p: any P5<Int>) -> any P6<Int> {
  p.bar()
}

Notice how the opaque return type is a different protocol from the existential, and the caller has a different generic signature than the callee (so the Self parameters are different in the two signatures).
I think we should instead fix getNonDependentUpperBounds() to not return interface types, which matches the old behavior expected by callers before 5c818b3fd4d7528987a5c651dec28e40a251faf9 and a9f1096839e23692446bb043c3f400fa8e694ed0. This is something that should be fixed anyway. Getting more accurate bounds here looks a little tricky but it could be done in a follow-up change since it's not the reason the test case in the radar is crashing.

There are also two almost identical implementations of the same algorithm (typeEraseOpenedArchetypesWithRoot() and typeEraseExistentialSelfReferences()) and setting breakpoints I see that both are called while type checking these examples. Before changing the behavior of either one I suggest that merging them together and fixing the fallout to make sure we understand the expected behavior in all cases.

There are also two almost identical implementations of the same algorithm (typeEraseOpenedArchetypesWithRoot() and typeEraseExistentialSelfReferences()) and setting breakpoints I see that both are called while type checking these examples. Before changing the behavior of either one I suggest that merging them together and fixing the fallout to make sure we understand the expected behavior in all cases.

tracking this in another PR ! https://github.com/apple/swift/pull/66361


Not able to filter $appends column

Hi,
in my models, i have this custom column which is not in database table ($appends = ['case_uid_prefix']), and  it seem like this library not support filter appends column.
Any suggestion or a way to solve this issue?

you cant do that because this library converts your filter yo mysql queries . so when you apply your last filter its going to search that on mysql and that column does not exists there . i had the same problem that i could not resolve .


Better error message when node.exe isn't in path

Sometimes, for reasons, node.exe may not be in a users path. There should be a better error message.
Additionally, allowing users to configure an explicit node path so that they don't need node.exe in their environment would probably be welcome in exotic situations.

Is there not a way to use vscode node.exe?

There is a way. We stopped using it because at one point VS Code node was too old for us.

The way is to pass a NodeModule instead of an Executable to the LanguageClient constructor in extension.ts.

Can provide better error message , verified


Mac Build

Related to #8 and #7
This doesn't totally fix it, but it gets it to build.

it's macosx not macos
the checkout of webui you were using didn't have apple support
made sure passC comes before the compile. Not sure if this is needed, but should be slightly more "correct"

After this, it will build without error, but it still pops up a blank window, which might be related to API changes (see #7)
So, I think we can merge that PR and add these minor changes (maybe only switch to macosx) and it should work better, everywhere.

I also tested on a x86_64 mac. Same issue with blank window/no wait, but it's working there, too.

I tried forking @hassandraga's branch and making the small changes, and it still had the same issue, so there may be more to it.

Thank you for this! I don't have a mac so I haven't been able to test webui on macos.

Looking at upstream C lib, it has same problem with Macs (wait seems to be returning immediately) so I am going to try to fix things there, too.


[Feature] Support varchar type for L0 of persistent index.

What type of PR is this：

[ ] bug
[x] feature
[ ] enhancement
[ ] refactor
[ ] others

Which issues of this PR fixes ：

Fixes #9493
Problem Summary(Required) ：

[FE PR Coverage Check]
:heart_eyes: pass : 0 / 0 (0%)

[FE PR Coverage Check]
:heart_eyes: pass : 0 / 0 (0%)

[FE PR Coverage Check]
:heart_eyes: pass : 0 / 0 (0%)

[FE PR Coverage Check]
:heart_eyes: pass : 0 / 0 (0%)

[FE PR Coverage Check]
:heart_eyes: pass : 0 / 0 (0%)

[FE PR Coverage Check]
:heart_eyes: pass : 0 / 0 (0%)

run starrocks_admit_test

run starrocks_admit_test

run starrocks_admit_test


feat: add fft support for fractional processes

Sorry, the stochastics module has been modified quite a bit to include time-dependent parameters so this conflict will need to be fixed before merging.

@avhz should I change anything else?

Hi @dancixx, possibly just check/fix the build error and it should be good :)

@avhz build issue is fixed :)


not able to build after installing this plugin

Server exception
Project "JAGS INDIA.tmp.proj" (default targets):
android Build Tooling revision 2<IP_ADDRESS> origin/release-<IP_ADDRESS>
Build Tooling Hostname d4c145c3ee93
Warning: Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details.
Warning: Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details.
Warning: /tmp/builds/YFqUeWY9hlIFOIQGxn/app/src/com/cordova/plugins/sms/Sms.java:56: error: cannot find symbol
Warning: return cordova.hasPermission(android.Manifest.permission.SEND_SMS);
Warning: ^
Warning: symbol: method hasPermission(String)
Warning: location: variable cordova of type CordovaInterface
Warning: /tmp/builds/YFqUeWY9hlIFOIQGxn/app/src/com/cordova/plugins/sms/Sms.java:60: error: cannot find symbol
Warning: cordova.requestPermission(this, SEND_SMS_REQ_CODE, android.Manifest.permission.SEND_SMS);
Warning: ^
Warning: symbol: method requestPermission(Sms,int,String)
Warning: location: variable cordova of type CordovaInterface
Warning: Note: Some input files use or override a deprecated API.
Warning: Note: Recompile with -Xlint:deprecation for details.
Warning: Note: Some input files use unchecked or unsafe operations.
Warning: Note: Recompile with -Xlint:unchecked for details.
Warning: 2 errors
Warning: FAILURE: Build failed with an exception.
Warning: * What went wrong:
Warning: Execution failed for task ':compileDebugJavaWithJavac'.
Warning: > Compilation failed; see the compiler error output for details.
Warning: * Try:
Warning: Run with --stacktrace option to get the stack trace. Run with --info or
Warning: --debug option to get more log output.
Warning: /tmp/builds/YFqUeWY9hlIFOIQGxn/app/cordova/node_modules/q/q.js:126 throw e; ^ Error code 1 for command: /tmp/builds/YFqUeWY9hlIFOIQGxn/app/gradlew with args: cdvBuildDebug,-b,/tmp/builds/YFqUeWY9hlIFOIQGxn/app/build.gradle,-Dorg.gradle.daemon=true,-PcdvBuildMultipleApks=false
Error: Build failed during execution
Error: 'Build failed with error code 1'
Done building project "JAGS INDIA.tmp.proj" -- FAILED.

Looks like you're using a Cordova version that's too old for this plugin. Can you try updating Cordova and run it again?


fixed kube-vip yaml for nutanix provider

Issue #, if available:
Description of changes:
Testing (if applicable):
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/ok-to-test

@deepakm-ntnx The release tooling presubmit is failing because the bundle generation code for Nutanix (bundles/nutanix.go) doesn't have the Kubevip field in the Nutanix struct, but that section is there in the golden file. So there's a mismatch when regenerating the bundle and checking it against the golden file. You just need to add the kube-vip field in nutanix.go like we do for vsphere(Lines 33 and 116)

/assignee @abhinavmpandey08

/hold

/unhold


Can provider be nested?

Other than a central state provider, can I nest some local providers maintained by individual sub modules?

Hm, no, sorry. Maybe https://pub.dartlang.org/packages/provider fits your needs.

I have done a test, and it works. This lib is really lightweight, easy to adopt and powerful enough for my app. Hierarchical providers and state management is helpful. Since it works now, is there any chance to break this in the future?

Your answer is provider can't be nested, but my test proves it does supported. So supporting nested provider is not in your design, I'm worrying about this feature may be removed in the future release.

Hm, got it. Well, Context nesting will be a long run on Flutter I guess and observable state is going to a stable API, so I guess your LTS covered 😉


Crash on resolution change

I'm working on linux 18.04 without GUI with X display and the stream works well
But once i change the screen resolution with xrandr command the stream crashes and here's the error:
(node:10327) UnhandledPromiseRejectionWarning: Error: write EPIPE
    at afterWriteDispatched (internal/stream_base_commons.js:154:25)
    at writeGeneric (internal/stream_base_commons.js:145:3)
    at Socket._writeGeneric (net.js:786:11)
    at Socket._write (net.js:798:8)
    at doWrite (_stream_writable.js:403:12)
    at writeOrBuffer (_stream_writable.js:387:5)
    at Socket.Writable.write (_stream_writable.js:318:11)
    at Transport.send (/snapshot/playwright-cli/node_modules/playwright/lib/protocol/transport.js:43:25)
    at DispatcherConnection.onmessage (/snapshot/playwright-cli/lib/driver.js:49:61)
    at DispatcherConnection.sendMessageToClient (/snapshot/playwright-cli/node_modules/playwright/lib/dispatchers/dispatcher.js:129:14)
(node:10327) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:10327) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

@celestial2 sorry for the delay. I'm not really sure how nodejs is related to mediadevices. Do you mind explaining your use case a little bit more?

What's your application stack/architecture?
So, it seems that you changed your screen resolution on your system. Was the error originated from mediadevices? If so, what was the error message from Go end?
How do you use mediadevices with your nodejs stack?

Sorry for late response, i was debugging just to be sure.
Ignore the nodeJS, it was issue from other library.
I am using Golang with VueJS and on signal from front end i change the resolution in the system.
So i have Xvfb virtual display since my app is in docker and i'm changing the resolution with xrandr commands.
**Display command**
Xvfb -screen 0 1920x1920x24 -ac &

**Resize commands**
# Get the needed resolution info
CVT=$(cvt $w $h)
resolution=$(echo $CVT | cut -d "\"" -f 2)
rest=$(echo $CVT | cut -d "\"" -f 3)

# Create, add and apply the new mode resolution
xrandr --newmode $resolution $rest || true
xrandr --addmode screen $resolution || true
xrandr --output screen --mode $resolution || true

The app when i change the resolution crashes and returns this:
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  130 (MIT-SHM)
  Minor opcode of failed request:  4 (X_ShmGetImage)
  Serial number of failed request:  26
  Current serial number in output stream:  26

I'm certain that it is from the mediadevices stream because when i am not streaming, executing the command doesn't crash the app.
Interesting thing is that if before the stream starts i add the new resolution and then when its running i change it to the first one it doesn't crash. It is as if the stream takes only the resolutions that are registered when it's created and if the system after the stream creation adds and uses a new resolution it crashes.
I was previously using mediadevices with the navigator in nodeJS app and it didn't have this issue.

In addition to my conclusion above i tried to close the track, restart the display and then take it, but there is no option to stop/restart the stream. After i remove the tracks when i try to get displaymedia again it says that the driver is already in use.
Is there a way to restart or re-initiate the stream ?

@Chimerax2 what's your OS? Currently, we have 2 backends, X11 driver that interacts directly to X11 server, and kbinani/screenshot. We use the X11 driver directly if it's on Linux.
In addition to my conclusion above i tried to close the track, restart the display and then take it, but there is no option to stop/restart the stream. After i remove the tracks when i try to get displaymedia again it says that the driver is already in use.

You should be able to re-initiate the stream by calling Close on the tracks, https://pkg.go.dev/github.com/pion/mediadevices#Source.

mediaStream, _ := mediadevices.GetUserMedia(...)
for _, track := range mediaStream.GetTracks() {
  track.Close()
}

Sorry for the late response, just got back to the issue.
It doesn't break anymore, but the stream doesn't continue.
I try to get the stream tracks and they are there, but the ontrack event on client side doesn't fire and when i check the webrtc-internals tab it shows on the graphs that it is not receiving any frames.
After i close the tracks, i get display media again and then add the tracks to the transceiver.
Is there some additional step that i am missing ?

Handling the resize with restart of connection was not the best user experience.
I made two repos - mediadevices one and one with novnc nodejs based on x11vnc also.
They both use same environment and do resize while connection running but the mediadevices one crashes on resize.
You can take them from here:

https://github.com/Chimerax2/mediadevices
https://github.com/Chimerax2/novnc-resize

They are both dockerized so environment shouldn't be a problem.
If you can please check them and let me know your thoughts whether this can be setup in mediadevices so they don't crash.


Sidebar Position

Please change DEFAULT sidebar position to right 😅

I am a user of Sidebar on the right but I see no reason in changing a long standing default that can be changed by user preference.


Java 9.3: Constructors and "this" key word

Description
Add audio, documentation, and video regarding the Constructors and "this" key word.

Location of File to be added
The files should be added inside the Constructors  folder which is inside the Classes and Methods  folder present in the   Java  main folder.  The documentation file can be in the .md/.py/.ipynb format. Audio should be in .mp3 format and to be submitted through a Google drive link. Video can be in any format and should be submitted through a Google Drive link.
Note:

You are required to comment with \assign CONTENT_TYPE, so that other content types can be created at the same time.
Failing to comment in the above manner will lead to the removal of assignment from the issue even if the bot assigns.
You are required to do a PR within 7 days otherwise you will be unassigned and others will be assigned.
Issues will be assigned on a first come first serve basis.

Domain
Java_Domain
Type of Contribution
Audio, Video, Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

/assign Document

/assign audio

/assign Document

@Aprakavdia02 go with documentation

@JayashreeSadarhalli go with audio

Hello Sir, I want to contribute in Documentation part of it. Please assign this to me.

/assign documentation


Deprecate pverifySignature, rename to pverifyEd25519Signature

Similar to changes on the plutus side

I think I have done that already

Yup, should be resolved.

Oh, you have! I was looking at an older commit. That's very good then


#214 updating color scheme with new surface colors

This is a PR for the issue https://github.com/beercss/beercss/issues/214
New colors section on homepage:

Now we can get the color code from current theme too:

I will merge this for next release, ok?


Support passing selected ServiceInstance id downstream via cookie.

Fixes gh-2070.

LGTM. Remind me why it needs to be a cookie and not just a generic header?

In the corresponding issue in commons, members of the community were suggesting a cookie. It seemed ok to me and I have implemented it that way in commons, so here it should be the same for consistency.

@OlgaMaciaszek I am having issues getting this feature to work, should the http response have a Set-Cookie header in it ?


Remove external link checking specs

Trello card
https://trello.com/c/SqBJ6ZOK/2957-missing-link-checker-times-out
Context and changes

Remove external link specs
Add some docs on link checking

Comment looks good, I think we now need to get the results to output to Slack and once we have that we can retire the previous method

this might be the key, https://api.slack.com/methods/files.upload


New version: GasModels v0.3.6

Registering package: GasModels
Repository: https://github.com/lanl-ansi/GasModels.jl
Created by: @kaarthiksundar
Git reference: register/GasModels/v0.3.6
Version: v0.3.6
Commit: 00a2118bdd79f59e993bdb0b9f0e14ce89137ce7
Reviewed by: @kaarthiksundar
Reference: https://github.com/lanl-ansi/GasModels.jl/issues/94#issuecomment-492844203

Don't merge, please close.


[incubator/route53] Broken repo urls in install description.

I think following lines in README.md:
$ helm repo add cloudposse-incubator http://charts.cloudposse.com/incubator/packages/
$ helm install incubator/route53-kubernetes
Should be:
$ helm repo add cloudposse-incubator http://charts.cloudposse.com/incubator/
$ helm install cloudposse-incubator/route53-kubernetes

Thanks for reporting. You're correct!


RPS?

You mention RPS workloads, but I'm not sure what this refers to. Do you mean, applications that have high Requests Per Second ?

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

ID: af931817-c3c8-6376-d2c2-a10795161d04
Version Independent ID: d2b59e0c-0c35-a335-b523-64f4d6f29d09
Content: Introduction to App Service Environments - Azure
Content Source: articles/app-service/environment/intro.md
Service: app-service
GitHub Login: @ccompy
Microsoft Alias: ccompy

@eyast Thank you for reaching out. We are actively investigating and will get back to you soon.

@eyast , Yes RPS means Requests Per Second.
Refer https://docs.microsoft.com/en-us/sharepoint/administration/enterprise-intranet-collaboration-performance-and-capacity#glossary


vscode-jsonrpc version "6.0.0" gives path argument null error

I'm trying to run a VSCode extension locally using LSP with some custom server logic behind it. It currently throws the error: Request initialize failed with message: The "path" argument must be of type string. Received null
The stack trace points to a vscode-jsonrpc file (v6.0.0).

Can you please provide me with the stack trace.

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


Feat: Adding a settings seection with basic settings for the project

Describe the feature
I'd add a "settings" section for the project, where the users can go through in order to change the settings associated with the project. I'd also add a few setting options, like adding a "dark mode", and a response/feedback tab for users.
Add ScreenShots
Sample screenshot for reference and understanding purpose:

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'23 contributor
[X] I want to work on this issue

Hi @avinashkranjan can u please assign to me this issue?

Go Ahead @jaivsh

Hey @avinashkranjan I had already worked on this issue earlier and had opened a pull request for it, which you have already merged #318  However, you only added a level 2 label to it :(

Updated @andoriyaprashant

@avinashkranjan can u please guide me where the heck is the settings section really inside the app? I've just updated and pulled to the latest version. However, Im unable to find a proper settings section anywhere in the application even after scanning every bit of the app. So please see to it. I cant find the implementation done in #318 anywhere in the application for whatever reasons. You should ask @andoriyaprashant where the heck is the implementation really in the application.


Confirmation alert on clicking an action

Sometimes one would like to have a confirmation prompt when performing a certain critical action or ones which may not be easily reversible. Not sure if this is a must have feature but I implemented this by adding a custom templates/admin/change_list.html with following content -
{% extends "admin/change_list.html" %}

{% block extrahead %}
    {{ block.super }}
    <script>
        (function() {
            document.addEventListener("DOMContentLoaded", function(event) {
                let inline_actions = document.querySelectorAll(".inline_actions input");
                for (var i=0; i < inline_actions.length; i++) {
                    inline_actions[i].addEventListener("click", function(e) {
                        if(!confirm("Do you really want to " + e.target.value + "?")) {
                            e.preventDefault();
                        }
                    });
                }
            });
        })();
    </script>
{% endblock %}

It basically prompts user to confirm the action before it is submitted to the backend. If user has clicked it accidentally, he can safely say no & the e.preventDefault(); would execute & stop the inline action from submitting.

Hi @ashishnitinpatil,
thanks for pointing this out.  This is a good idea, though I don't think it is an essential feature. Not everyone needs it as this module already has support for intermediate (confirmation) pages. However, I think it would be great to have a paragraph about this. Would you mind submitting a PR, which adds this to the readme?
Many thanks!


Add support for wavedrom

fixed in https://github.com/yuzutech/kroki-cli/commit/b802f44b870d62cdd631f2dfd6bd9af056778728


Support dashed line charts?

[X] I have searched for existing issues

Any plans to support configuring a dashed line via strokeDashArray? Seems like it's supported by react-native-svg here.
Would also be nice to specify some lines as dashed and others as solid within the same line chart.

Sounds like a great enhancement request. Didn't have any plans for it previously but now we know its something people want. If no one gets to it for a while, feel free to try and implement it and submit a pull request.


Add option to not descend directories on other filesystems

In my environment, there are symlinks to directories that are actually mounted via NFS. It would be nice to have an option to not search such directories, as these just cannot be searched as fast as locally mounted ones. This would correspond to the -xdev option of find (and it only makes sense in combination with -f).

Did you try --one-device?

Sorry for my stupidity, that is obviously what I was looking for. Thanks!


Network usage: try to make less requests

Currently Cutecoin is pulling data from servers.
It could prefer the push APIs from BMA instead.

We are requesting 5 kinds of data at the moment :

Current block
Node peering
Node identity
Peers
Node software & version

Block & Peers can be requested throught push API.
For the 3 others data, they could be forced to be refreshed through the "refresh" button. Automatically, it could be one time a day maximum, or maybe even less ?

Yes, even 1 time an hour is OK.

Ok, for cutecoin 0.11, I won't implement websockets. Only the following :

Refresh blocks & peering every 15 seconds
Refresh every other data at cutecoin startup then every hour


Bug (?) when normalising coordinates

Hi, @daerduoCarey
I have a question on the part of the code that deals with normalising the coordinates:
st_layer.cpp#L114-119
    Dtype* data = output_grid.mutable_cpu_data();
    for(int i=0; i<output_H_ * output_W_; ++i) {
        data[3 * i] = (i / output_W_) * 1.0 / output_H_ * 2 - 1;
        data[3 * i + 1] = (i % output_W_) * 1.0 / output_W_ * 2 - 1;
        data[3 * i + 2] = 1;
    }

If I have understood the paper correctly, the normalised coordinates should lie in [-1, 1]. In the code above, the upper bound is less than 1.
For example, for output_H_ = 2, output_W_ = 3 the result is as follows:

i: 0 [-1, -1, 1]
i: 1 [-1, -0.333333, 1]
i: 2 [-1, 0.333333, 1]
i: 3 [0, -1, 1]
i: 4 [0, -0.333333, 1]
i: 5 [0, 0.333333, 1]

So, shouldn't it be something like this instead?
    Dtype* data = output_grid.mutable_cpu_data();
    for(int i=0; i<output_H_ * output_W_; ++i) {
        data[3 * i] = (i / output_W_) * 1.0 / (output_H_ - 1) * 2 - 1;
        data[3 * i + 1] = (i % output_W_) * 1.0 / (output_W_ - 1) * 2 - 1;
        data[3 * i + 2] = 1;
    }

Which generates the following normalised coordinates:

i: 0 [-1, -1, 1]
i: 1 [-1, 0, 1]
i: 2 [-1, 1, 1]
i: 3 [1, -1, 1]
i: 4 [1, 0, 1]
i: 5 [1, 1, 1]

Thanks.

Hi, @DrSleep ,
Thank you for your interests in my implementation and your careful examination of my code.
I think this is a quantization issue. We have to find some way to discretize the output image space into some grids and compute the values via interpolation for the grids. I think the most reasonable implementation is to add grid_size/2 to all of my computed grid coordinates before applying the transformation matrix to them. But I think when output_W_ and output_H_ are large enough (maybe 64 is enough, not like your example, 2 and 3), the problem should not be so dramatic. Let's say that there is indeed some difference (fix input image and transformation matrix, the output images may be slightly different) using different quantization approaches. However, we are still safe to use any of them since the learning process of the transformation matrix in the prior mini-network should be aware of this issue and do some adjustment to produce a slightly different transformation matrix to offset the quantization issue.
Hope my response help you understand the issue. More questions are warmly welcomed!
Thank you.
Bests,
Kaichun Mo

Yes, I agree with your points: for big images this should not pose a problem.
Thanks for your comment!


Fix css selector and Update extension name

First, I would like to thank you for creating this simple but awesome extension, as I really hate the trending widget on twitter too.
The only extension I found that is open source is yours.
So I updated the CSS selector, and made the extension name more descriptive,
I've already fixed my version, I would be glad if you would merge so others can use it too

🙇 Thank you @ABODFTW!


ListTrait looping through all lines

Hey, guys, I wonder why do you loop through all lines even if you have the $current
It wouldn't be faster to go directly to that line and consume it?
ListTrait.php

That code does not loop all lines, it starts at $current.
$i = $current is executed on start of the loop, so I starts at current line and not at 0.

yes, you are right. Thank you


spinel-doc: Updates and additions to spinel documentation.

These changes add peek/poke commands, improvements to the SPI protocol, and a few other miscellaneous minor changes.

Current coverage is 72.55% (diff: 100%)

Merging #934 into master will increase coverage by 0.29%

@@             master       #934   diff @@
==========================================
  Files           116        116
  Lines         17344      17344
  Methods        2432       2433     +1
  Messages          0          0
  Branches       2111       2111
==========================================
+ Hits          12532      12584    +52
+ Misses         4117       4073    -44
+ Partials        695        687     -8

Powered by Codecov. Last update 74a95f0...a367753


Fix typos in replicationcontroller.md

/check-cla

/check-cla

/check-cla

Buenas @leo8a, para poder aceptar la contribución, es necesario que firmes la CLA:
https://git.k8s.io/community/CLA.md#the-contributor-license-agreement
Si tienes cualquier duda, puedes contactar conmigo por slack o por correo.
Un saludo!

@leo8a thanks for your contribution! 🎉 We really would love to have it, unfortunately to continue we need to have your (or your company's) signature on a CLA! For now I'm going to close this, but fret not! You can re-open whenever you have a chance. Thanks!
/close

@leo8a I just created a new PR to apply your fix, but let me know if you have any issue with the CLA for your next contribution!


Fix typo

I validated each command and the result of the KUBERNETES_PUBLIC_ADDRESS looked wrong.
I'd not remove the second variable export for KUBERNETES_PUBLIC_ADDRESS, if something is debugging something he might accidentally try the validation in a new shell and forget about the export.

After I ran into #234 I also tried to change the KUBERNETES_PUBLIC_ADDRESS to the name to see if this may be the cause. It seems that gcloud compute forwarding-rules accepts both the name and the ip address as valid input for --address.
The forwarding rule looked the same in the web interface for both name and ip address.
Still, better to always store IP under KUBERNETES_PUBLIC_ADDRESS and not change the contents.

Its not really a "typo" though.

Fixed on master


Rename adresses to addresses

Fix Issue #616 AttributeError: 'LinuxInterface' object has no attribute 'adresses'

Merged, thanks!


Enable magnum tempest filter for SOC7 maintenance jobs

closing as duplicate of https://github.com/SUSE-Cloud/automation/pull/3875


use weave to allow book pages from .jmd and jl files.

Following a chat with @TheCedarPrince, who implemented a means of automatically weaving a .jmd file to html and capture the body to include in the Franklin-generated page, the idea is to adapt this to weave a jl script, as well, and hopefully weave them to markdown instead.
From the user's perspective, simply adding a filename.jl or filename.jmd to the menu should suffice. The methods that build the book layout should figure out the extension and weave the files accordingly.

I am having an issue with the figures. Weave sets the figures path relative to out_path, while Franklin moves the contents of say filename.md to a new dir filename/, which screws the path to the figures. I will try moving the pictures to the proper place after they are generated by weave.

Yes, we can specify an output path for the generated markdown file, which can be either an absolute or relative path. I am weaving it to a _weaved folder. Say pages/script.jl gets weaved to _weaved/pages/script.md. We can also specify a figures path, but that is always relative to out_path, and the default is figures. The generated markdown will refer to figures as [fig](figures/fig.png), which works with the markdown file on the parent folder to figures.
Problem is that Franklin renders the markdown in _weaved/pages/script/index.html and apparently it ends up looking for the figures in _weaved/pages/script/figures, not in _weaved/pages/figures. I am trying to move the pictures from one place to the other. It is working locally, when I serve() the pages, but the GitHub actions are failing.
I realized I need to check for the existence of the folder before attempting to move. I haven't done that, yet. I had to go out. I will try again later today.

Actually, Franklin should take care of this figure path automatically, right. I don't know why it got it wrong here. Probably I am doing something wrong.

(sorry being a bit lazy) could you prepare a super simple page with a super simple plot that I can look at? and I'll get this path thing fixed :-D
Note: in the next version (Xranklin) people won't have to deal with path stuff, it will be fully automatic 😄

Oh, that is exactly what I saw at TheCedarPrince's site. Well, I saw this solution there, but it is for the html output from Weave. I am trying to use the markdown output of Weave, in particular to not have to worry about different CSS's.
Besides, part of my workflow is to write plain julia scripts in VSCode, intertwined with weave-like comments (with lines starting with #'). I think it is easier than writing Franklin's type markdown, with fenced codes and worrying about saving and outputting text and figures. These are fine, and convenient, for blog posts or sections where I mainly write text. But when there is a lot of code, just writing julia scripts seems better. That is why I am trying to make it easy to use both.

hmm, I'm not sure I see but in any case you're on your own here; in Franklin you currently have to somehow specify a path for the asset so you'd have to have at some point \insert_fig{some_path}; some of this stuff can be lifted to the point where you could have a counter and just do \insert_latest_fig{} or {{last_fig}} or something of the sorts, but you'll need that input;
That might be fine by you (not sure), if that is, the logic will be a bit annoying because you'll need to keep track of how many cells there has been and make sure your fig insertion happens just after it; this would be easier from inside Franklin but I won't support that work because it's already present in the next version.
The next version is basically a rewrite from scratch which was an enormous amount of work, correspondingly it needs a lot of testing and people trying it before it can be announced; this is why there was a soft announce of the #xranklin channel for people who were willing to test it out. ETA is hard to guess; rough plan is to announce a beta version around April time then get more feedback and slowly migrate big sites and maybe, if all goes well, have the version released over the summer.
I'd understand that this might disturb your timeline so then you're left with either doing this auto-fig yourself (which might be a pain), or dropping this weave stuff for now and focus on the rest (that's what I'd do but then, of course, I don't use Weave 😋 )

Hmm, I see, now. The markdown from Weave won't have this path-specifying stuff that is needed for Franklin. Maybe I should stick with the html solution.
Another reason I should have mentioned is that, since this is for a class, I would like to provide either or both a julia script or/and a jupyter notebook of each section, so the students can easily run them and change whatever they want/need. Anyway, I should think over that for a bit.
Or maybe I should give this beta-version of Xranklin a try.

This can be done with Literate: Franklin handles literate more or less seamlessly; have a look at the DataScienceTutorials in JuliaAI, it's all Literate and Jupiter notebooks are generated on the fly.

Oh 👀 , I didn't know Literate.jl could execute the code! I never looked carefully at the Documentation. I thought the execution was handled separately. So this means I can completely replace Weave.jl with Literate.jl. And there is even a "Franklin markdown" output flavor, if desired. Nice. I will look into that.
But I should say that I start to get the impression that the problem is not the integration with Weave per se. My current logic is apparently working fine, locally. But github deploy actions are seg faulting with something related to Plots. I switched to Winston and it doesn't seg fault, the gh-action is succesful, but at the end there is a "failed to precompile Winston" message. This should not be related to weave. I don't know. Anyways, I will dig into Literate.jl

Getting plots to work well on GithubAction is not easy. This is related to Github, not to Julia.
For Plots to work well, you need to install additional things related to GR. Something like this should work
      # GR recommended (plots backend)
      - run: |
             sudo apt-get update -y
             sudo apt-get install -y qt5-default

      # Website build
      - run: xvfb-run julia -e ' # here the rest of the Franklin command

Thanks again! This works!!!
It took me quite some time to get it working, though. I changed a bit the structure and added Plots to a new Project inside pages/. Then, within the markdown (a regular Franklin Markdown), I would activate that project and do using Plots, but that didn't work. Deploying didn't fail, but the gh-pages was NOT FOUND. Anyways. I moved Plots back to the main Project, along with Franklin, and now everything seems to work. I am happy with it. And I am happy with Literate, which is what I am using, now. I stopped with Weave. I just need to clean up the mess.
But I am wondering about the strategy you took with DataScienceTutorials.jl. I found the way the menu and stuff is built to be a bit complicate. I want something easier and more automated, and what I have so far is good enough. But I am curious about a different thing. If I am not mistaken, you don't have __site in .gitignore and what you do is, in fact, build the site locally; push the whole __site to github, and then the github action is simply to move the contents of __site to gh-pages, without running Franklin in the github action. Is that correct? I realize this speeds up deployment and avoids problems such as this with Plots. How often people do this? Is it common? I am wondering if I should do the same.

But I am wondering about the strategy you took with DataScienceTutorials.jl. I found the way the menu and stuff is built to be a bit complicate. I want something easier and more automated, and what I have so far is good enough. But I am curious about a different thing. If I am not mistaken, you don't have __site in .gitignore and what you do is, in fact, build the site locally; push the whole __site to github, and then the github action is simply to move the contents of __site to gh-pages, without running Franklin in the github action. Is that correct? I realize this speeds up deployment and avoids problems such as this with Plots. How often people do this? Is it common? I am wondering if I should do the same.

Yes, speed only; you'll note that each page has its own environment as well so it takes quite a bit of time to build the whole website from scratch. This could be heavily reduced by making use of the GitHub cache (something that I'm currently doing with Xranklin) this more or less only requires this in the action after the "Git checkout" bit.
      - name: Cache
        uses: actions/cache@v2
        with:
          path: |
                __site
                ~/.julia/artifacts
                ~/.julia/packages
          key: ${{ runner.os }}-franklin-cache-${{ github.sha }}
          restore-keys: ${{ runner.os }}-franklin-cache-

In any case if you only push after building (i.e. local -> global) there's no real use of re-building the site on GitHub. It's just convenience. It's not common because people like this convenience of being able to edit a file directly on the GitHub website and get their site rebuilt automatically (e.g. also if someone submits a PR for a typo fix).
Long story short my recommendation would be that, if you can, use a single environment (project.toml) for the whole website and try the cache above if you want to try to speed the deployment up a bit (by avoiding re-building pages that haven't changed).

I see. I guess I will stick with building at github for the moment, and maybe experiment with the cache thing, but I will worry about this later. I need to do some clean up and close this issue. Many thanks again!

Yeah, working fine, now, with both Weave and Franklin. Time to clean up, remove redundancies in the code, and document. It is certainly not over with bugs, but it was a big step. Thanks again, @tlienart !

closed by commit 0924618

nice work :)