Fixes - #2359 All events now use sender EventArgs

Fixes - #2359  Include a terse summary of the change or which issue is fixed.
Pull Request checklist:

[x] I've named my PR in the form of "Fixes #issue. Terse description."
[x] My code follows the style guidelines of Terminal.Gui - if you use Visual Studio, hit CTRL-K-D to automatically reformat your files before committing.
[x] My code follows the Terminal.Gui library design guidelines
[x] I ran dotnet test before commit
[x] I have made corresponding changes to the API documentation (using /// style comments)
[x] My changes generate no new warnings
[x] I have checked my code and corrected any poor grammar or misspellings
[x] I conducted basic QA to assure all features are working

20 down, 48 to go 😓

Fantastic stuff.

Thanks.  I'm keeping this in draft though as still working my way through all the event Action<x> events.  There are a lot!

What about cancelable events?

Hopefully most would already use an event args with Handled (or similar) so should be ok I think?

Only 7 more to go 🏁 👁 but looks like they will all need event args classes.
I've added any new EventArgs classes I've created in the EventArgs folder but using the normal namespace (Terminal.Gui).  A lot of existing ones are nested within parent classes though which I think isn't ideal (makes them harder to find and take up more editor space in method signatures and generally not be friendly).  But maybe can revisit that later in another PR!

Ok all the actions are now events! Except a few in UICatalog but since thats not part of the shipped library I think we are ok.

@tznind should be more adequate moving all Terminal.Gui events to the \Terminal.Gui\Core\EventArgs\ folder as well? Here a list of them:
\Terminal.Gui\Configuration\ConfigurationManager.cs(307):public class ConfigurationManagerEventArgs : EventArgs {
\Terminal.Gui\Configuration\ThemeScope.cs(158):public class ThemeManagerEventArgs : EventArgs {
\Terminal.Gui\Core\Application.cs(1509):public class ResizedEventArgs : EventArgs {
\Terminal.Gui\Core\CollectionNavigator.cs(50):public class KeystrokeNavigatorEventArgs : EventArgs{
\Terminal.Gui\Core\Toplevel.cs(1056):public class ToplevelClosingEventArgs : EventArgs {
\Terminal.Gui\Core\Trees\SelectionChangedEventArgs.cs(7):public class SelectionChangedEventArgs<T> : EventArgs where T : class {
\Terminal.Gui\Core\View.cs(1337):public class FocusEventArgs : EventArgs {
\Terminal.Gui\Core\View.cs(1696):public class KeyEventEventArgs : EventArgs {
\Terminal.Gui\Core\View.cs(2285):public class LayoutEventArgs : EventArgs {
\Terminal.Gui\Core\View.cs(2843):public class MouseEventArgs : EventArgs {
\Terminal.Gui\Core\Window.cs(350):public class TitleEventArgs : EventArgs {
\Terminal.Gui\Views\DateField.cs(428):public class DateTimeEventArgs<T> : EventArgs {
\Terminal.Gui\Views\HexView.cs(638):public class HexViewEditEventArgs : EventArgs {
\Terminal.Gui\Views\HexView.cs(664):public class HexViewEventArgs : EventArgs {
\Terminal.Gui\Views\ListView.cs(945):public class ListViewItemEventArgs : EventArgs {
\Terminal.Gui\Views\ListView.cs(970):public class ListViewRowEventArgs : EventArgs {
\Terminal.Gui\Views\Menu.cs(2011):public class MenuOpeningEventArgs : EventArgs {
\Terminal.Gui\Views\Menu.cs(2040):public class MenuClosingEventArgs : EventArgs {
\Terminal.Gui\Views\RadioGroup.cs(429):public class SelectedItemChangedArgs : EventArgs {
\Terminal.Gui\Views\TableView.cs(21):public class CellActivatedEventArgs : EventArgs {
\Terminal.Gui\Views\TableView.cs(2007):public class SelectedCellChangedEventArgs : EventArgs {
\Terminal.Gui\Views\TabView.cs(777):public class TabMouseEventArgs : EventArgs {
\Terminal.Gui\Views\TabView.cs(874):public class TabChangedEventArgs : EventArgs {
\Terminal.Gui\Views\TextField.cs(1315):public class TextChangingEventArgs : EventArgs {
\Terminal.Gui\Views\TextField.cs(1337):public class TextChangedEventArgs : EventArgs {
\Terminal.Gui\Views\TextView.cs(526):public class HistoryTextItem : EventArgs{
\Terminal.Gui\Views\TextView.cs(2715):public class ContentsChangedEventArgs : EventArgs {
\Terminal.Gui\Views\TileView.cs(67):public class TitleEventArgs : EventArgs {
\Terminal.Gui\Views\TileView.cs(1113):public class SplitterEventArgs : EventArgs {
\Terminal.Gui\Windows\Wizard.cs(98):public class TitleEventArgs : EventArgs {
\Terminal.Gui\Windows\Wizard.cs(621):public class WizardButtonEventArgs : EventArgs {
\Terminal.Gui\Windows\Wizard.cs(669):public class StepChangeEventArgs : EventArgs {

@tznind should be more adequate moving all Terminal.Gui events to the \Terminal.Gui\Core\EventArgs\ folder as well? Here a list of them:
\Terminal.Gui\Configuration\ConfigurationManager.cs(307):public class ConfigurationManagerEventArgs : EventArgs {
\Terminal.Gui\Configuration\ThemeScope.cs(158):public class ThemeManagerEventArgs : EventArgs {
\Terminal.Gui\Core\Application.cs(1509):public class ResizedEventArgs : EventArgs {
\Terminal.Gui\Core\CollectionNavigator.cs(50):public class KeystrokeNavigatorEventArgs : EventArgs{
\Terminal.Gui\Core\Toplevel.cs(1056):public class ToplevelClosingEventArgs : EventArgs {
\Terminal.Gui\Core\Trees\SelectionChangedEventArgs.cs(7):public class SelectionChangedEventArgs<T> : EventArgs where T : class {
\Terminal.Gui\Core\View.cs(1337):public class FocusEventArgs : EventArgs {
\Terminal.Gui\Core\View.cs(1696):public class KeyEventEventArgs : EventArgs {
\Terminal.Gui\Core\View.cs(2285):public class LayoutEventArgs : EventArgs {
\Terminal.Gui\Core\View.cs(2843):public class MouseEventArgs : EventArgs {
\Terminal.Gui\Core\Window.cs(350):public class TitleEventArgs : EventArgs {
\Terminal.Gui\Views\DateField.cs(428):public class DateTimeEventArgs<T> : EventArgs {
\Terminal.Gui\Views\HexView.cs(638):public class HexViewEditEventArgs : EventArgs {
\Terminal.Gui\Views\HexView.cs(664):public class HexViewEventArgs : EventArgs {
\Terminal.Gui\Views\ListView.cs(945):public class ListViewItemEventArgs : EventArgs {
\Terminal.Gui\Views\ListView.cs(970):public class ListViewRowEventArgs : EventArgs {
\Terminal.Gui\Views\Menu.cs(2011):public class MenuOpeningEventArgs : EventArgs {
\Terminal.Gui\Views\Menu.cs(2040):public class MenuClosingEventArgs : EventArgs {
\Terminal.Gui\Views\RadioGroup.cs(429):public class SelectedItemChangedArgs : EventArgs {
\Terminal.Gui\Views\TableView.cs(21):public class CellActivatedEventArgs : EventArgs {
\Terminal.Gui\Views\TableView.cs(2007):public class SelectedCellChangedEventArgs : EventArgs {
\Terminal.Gui\Views\TabView.cs(777):public class TabMouseEventArgs : EventArgs {
\Terminal.Gui\Views\TabView.cs(874):public class TabChangedEventArgs : EventArgs {
\Terminal.Gui\Views\TextField.cs(1315):public class TextChangingEventArgs : EventArgs {
\Terminal.Gui\Views\TextField.cs(1337):public class TextChangedEventArgs : EventArgs {
\Terminal.Gui\Views\TextView.cs(526):public class HistoryTextItem : EventArgs{
\Terminal.Gui\Views\TextView.cs(2715):public class ContentsChangedEventArgs : EventArgs {
\Terminal.Gui\Views\TileView.cs(67):public class TitleEventArgs : EventArgs {
\Terminal.Gui\Views\TileView.cs(1113):public class SplitterEventArgs : EventArgs {
\Terminal.Gui\Windows\Wizard.cs(98):public class TitleEventArgs : EventArgs {
\Terminal.Gui\Windows\Wizard.cs(621):public class WizardButtonEventArgs : EventArgs {
\Terminal.Gui\Windows\Wizard.cs(669):public class StepChangeEventArgs : EventArgs {

Shouldn't the eventargs .cs files be next to the class that uses them? E.g.  WizardButtonEventArgs.cs should be in the same folder as Wizard.cs?

Shouldn't the eventargs .cs files be next to the class that uses them? E.g. WizardButtonEventArgs.cs should be in the same folder as Wizard.cs?

Maybe you should be right. Although some of them are common to others (like Menu and ContextMenu), but majority of them are only used by the class who created it. Now I've a lot of doubt about wat I asked :-(

They could be moved to the same folder.
There are 2 aspects to this

Which physical folder they are in in our repo
Whether they are nested classes or not (either in main file or in their own file but as a partial class of the main View

Which Folder
Normally in a csharp project the folder structure would match the namespaces.  But there are arguments for not doing this (e.g. https://medium.com/@steve_verm/matching-namespaces-to-folders-is-an-anti-pattern-e8edb3a6b8e5 )
We have 'Views', 'Types', 'Windows' etc.  I quite like this separation and from a client perspective it doesn't matter as they all share the same namespace.
I created a separate folder for EventArgs during this PR so I could see them easily together and work with them.  But I am not wed to this idea and can happily move them into the main 'View'/'Windows' folders as applies.
Nested Classes
A separate issue is whether to declare event args as nested classes e.g.
namespace Terminal.Gui;

public class Wizard{
    public class WizardButtonEventArgs : EventArgs
    {
    }
}

Or whether they should just be normal root level classes
namespace Terminal.Gui;

public class WizardButtonEventArgs : EventArgs
{
}

The MS guidance on nested classes is basically to avoid doing it .
Theres a big list of 'DO NOT' in that article.  And the only 'Do' case is around access to access private members of parent class.
From a users perspective events are either used as anonymous lamdas e.g.
mybtn.Click += (s,e)=>{ /*do a thing*/}

In this case it doesn't really matter whether the class is nested or not.  But often a click handler is used instead e.g.
wiz.Finished += WizFinished;

private void WizFinished(object sender, Wizard.WizardButtonEventArgs args)
{
   /*do something*/
}

To my mind this is adding extra text to the signature and can be confusing to new developers who might not be familiar with this nested syntax.
It also makes the WizardButtonEventArgs  harder to find for an inexperienced user as its never going to show up in autocomplete in any namespaces until they type the name of an actual class then hit dot.
It also means that if you want to reuse an event args in another/new class you suddenly are referencing a nested class in another control (or have to do a breaking change to move it into root).
Summary
I propose:

Moving all nested event args classes out into their own files (and not nested in a parent class)
Scrap the 'EventArgs' folder and instead put the classes in the main View/Window folder (depending on who they are most closely associated with)

But I'm happy to hear other points of view or go into more detail on my reasoning.

I propose:
* Moving all nested event args classes out into their own files (and not nested in a parent class)

Thanks for the understandable explanation and after read it I agree by moving them out of the parent class.

* Scrap the 'EventArgs' folder and instead put the classes in the main View/Window folder (depending on who they are most closely associated with)

I agree. All *EventArgs.cs must resides in the same folder of the class that use them. I only want to ask if it's has some advantages to group various EventArgs class in the same file, e.g. all menu events args class on a file name MenuEventArgs.cs.

But I'm happy to hear other points of view or go into more detail on my reasoning.

In general I agree on all your thought, but I would like to "hear" your opinion of my suggestion.

Moving all nested event args classes out into their own files (and not nested in a parent class)
Scrap the 'EventArgs' folder and instead put the classes in the main View/Window folder (depending on who they are most closely associated with)

I also conur with @tznind's proposal.
On having multiple eventargs classes in aa group as @BDisp asks for Menu, I also agree.
Restating our "event args rules":

Events are defined using the sender EventArgs pattern.
Named as MyClassEventArgs
Separate classes from MyClass, not nested classes of MyClass.
If the event can be fired by multiple classes, name it appropriately (e.g. TitleEventArgs)
Put the implementation (.cs file) in a separate file from MyClass.cs, in the same directory.
It's ok to put multiple EventArgs class implementations in a common .cs file if they are all related to a root base-class (e.g. all Menu related EventArgs implementations can go in ./Views/MenuEventArgs.cs.

Correct? If so, let's update this as appropriate:
https://github.com/gui-cs/Terminal.Gui/wiki/Framework-Design-Guidelines

Ok all nested events are now in their own files.  Thanks for that list @BDisp was very helpful.

@tznind it seems there was misunderstand on what I said and what @tig understood as well, in this comment:

I agree. All *EventArgs.cs must resides in the same folder of the class that use them. I only want to ask if it's has some advantages to group various EventArgs class in the same file, e.g. all menu events args class on a file name MenuEventArgs.cs.

So, what I referred was the same what @tig said:

It's ok to put multiple EventArgs class implementations in a common .cs file if they are all related to a root base-class (e.g. all Menu related EventArgs implementations can go in ./Views/MenuEventArgs.cs.

In this case is put all the Menu EventArgs into the MenuEventArgs.cs where will contain:
MenuOpeningEventArgs
MenuClosingEventArgs
etc...

By the way you have the MenuOpeningEventArgs.cs on two places, in the Core and the Views folders.
Another issue I' seeing is the GrabbingMouse and the UnGrabbingMouse isn't present in the Application.cs on the current PR, did you revert something?
I hope you don't interpret me badly for these comments.

EventArgs in a public partial class that isn't a EventArgs class, still keep them as nested EventArgs class. Only private partial class must be allowed. Right?

@tznind I submitted the PR https://github.com/tznind/gui.cs/pull/163 to help a little on your awesome work. Thanks.

That's right, Now that we are using object, EventArgs we can pass any subclass of EventArgs we might create later.

Now the problem is the lot of warnings due the use of #nullable enable. Some of them have quick fix but others not. What the best solution for those that doesn't have a quick fix?

Now the problem is the lot of warnings due the use of #nullable enable. Some of them have quick fix but others not. What the best solution for those that doesn't have a quick fix?

Hmn thats odd, must have been a bad autocomplete suggestion or a side effect of refactoring command I used to pull out to seperate file.  Seems they started appearing in 2ed71e284
I didn't mean to add it so I will just get rid of them.

Ah actually some of them were added by @tig for example in UICatalog in c94f9165f4dd0dbfe7ecf4ee66ffcd32cc75401c
See https://github.com/gui-cs/Terminal.Gui/commit/c94f9165f4dd0dbfe7ecf4ee66ffcd32cc75401c#diff-81646b59a9d4df0e26e5e72c0dddde6f499db0ae941481edcd40326d5ec800eeR17-R18
Maybe this is a work in progress, I had better not go chop them out just yet.

Ah ok we wait for @tig answer. Thanks.

I'm quite confused about nullable. It just confuses the hell out of me.
We need a clear and concise set of guidelines for v2. I'm not smart enough (apparently) to author such a thing.

I'm quite confused about nullable. It just confuses the hell out of me.
We need a clear and concise set of guidelines for v2. I'm not smart enough (apparently) to author such a thing.

Before NRT
C# has value types and classes (aka reference types).  Value types (int, bool, float, struct) cannot be null.  Classes can be null.
A while ago the ? operator was added to allow Value types to be null (int?, bool? etc).
Classes can be null, so MyClass blah;  means a variable of type Myclass.  The variable will start out as null and may be assigned values or null later on etc.
You do not need the #nullable enable directive to use these features and they are not related to NRT - Nullable Reference Types.
NRT - Nullable Reference Types
You can turn on NRT for a file with the #nullable enable or for the whole project as a csproj setting.
Enabling NRT changes MyClass blah; from meaning "A variable of type 'MyClass'" to meaning "a variable of type 'MyClass' **which will NEVER BE NULL!".
Obviously when you turn this on you immediately start getting compiler warnings that basically say:
"You told me this variable will never be null but then you assigned it null!"
So you have to manually add a question mark to the class i.e. MyClass? blah.  Adding the question mark restores the previous interpretation before you enabled NRT (i.e. "A variable of type 'MyClass'").
You also have to do this for methods e.g. if you return null from a method it needs to have the question mark on the class name returned too e.g. public MyClass? MaybeGetInstance().
This means you end up with questionmarks all over the place to limited value.  You can see this when methods like string? ToString().  That method should almost never return null but since theres some corner cases in some persons library where they do return null then the signature needs the question mark.
Worse still is that when you call ToString, because theres a question mark on the Type the compiler makes the assumption that "it could return null!" which means any variable you assign it to needs to allso allow null so you end up with:
string? name = thing.ToString();

or (my prefered option)
string name = thing.ToString() ?? throw new Exception("ToString method unexpectedly returned null");

The first case has the big down side that anyone who references or takes string? name later on needs to also be considered "might be null".  The second option is you have a throw which will probably never ever get met and is just there to satisfy compiler warnings.
For more info read here: https://devblogs.microsoft.com/dotnet/embracing-nullable-reference-types/
When is NRT a good idea
NRT is a great idea when you are first starting a project (Terminal.Gui.Designer has it for example) since it is not too much work when writing code to make informed decisions about whether a class instance should be allowed to be null.
NRT does make you think a lot more about nullability and if you have the spare effort to put in (think 2-3 weeks of solid work for a library our size) then it can reduce the number of null references client libraries end up with.

Well if it's for to have sure that a class never can be null and ensuring that all the consumers are instantiating a non null class, that really a good advantage of NRT. But if it's for end up putting ? around all the code and acting as non NRT, then is better remove the #nullable enable, right?

Yes that is the trade off.
NRT is great for a new codebase.  But when you start getting into NRT in an existing big codebase then it starts to proliferate throughout the codebase.  Despite the ability to enable it per file it still ends up spilling everywhere.
So you either spend a lot of effort doing it properly or you do a half way job (either suppressing the warnings or putting ? on everything everywhere).  At least that is my experience of it.
But its a big enough task that we should probably make a branch specifically for implementing NRT if that's the way we want to go down rather than just turning it on ad-hoc as part of other work.

What do y'all think about adopting INotifyPropertyChanged in v2?

What do y'all think about adopting INotifyPropertyChanged in v2?

I think this is a worthy goal but maybe do it as a seperate PR?

This is gonna be fun... Not.

Excellent work @tznind !! This is huge.


feat(otel): add NewMetricsHook, use api interface instead of SDK type

This PR

Changes NewMetricsHookForProvider to accept MeterProvider interface from api instead of sdk type. This allows to pass any compatible implementation
Adds NewMetricsHook which uses global default MeterProvider
Tidies deps

Related Issues
Fixes #527

I'll merge this in the next day or 2, but giving a bit of time for others to comment.

Good enough for me.


chore: limit typescript lib to es2016

Prevent to use APIs that introduced after ES2015, like https://github.com/vuejs/core/pull/10153

Wait PR https://github.com/yyx990803/consolidate.js/pull/1


TBI - Improve consistency and documentation of authentication handling across middlewares and tasks

Description (include screenshots)
While being at UI5Con, I have noticed that our documentation about how we handle authentication across the tools has room for improvements. On the one hand, it is not clearly documented and on the other hand, there are subtle differences between the middlewares that need to be aligned.
Value
A clear documentation helps consumers to better utilize the tools, and a consistent behavior is the expectation of consumers.
Architecture Elaboration
n/a
Notes
Tasks

[ ] Add handling of Fiori tools CI/CD variables to the system-access module to be consistent with the backend-proxy-middleware
[ ] Evaluate using system-access in the backend-proxy-middleware
[ ] Enhance the READMEs of system-access and all its consumers to clearly explain how authentication is handled

I want to add that the debug parameter in the deploy tasks is documented neither in help.sap nor in the readme. It's in the readme for the deploy task itself which was linked in the console after I experienced a error.
Also in the help.sap there is a tip to use DEBUG=ux-odata-client npm run deploy. Does that work?
https://help.sap.com/docs/SAP_FIORI_tools/17d50220bcd848aa854c9c182d65b699/1b7a3be8d99c45aead90528ef472af37.html?locale=en-US&q=Debug


Importing Pulse will error out.

Expected Behavior
Importing Pulse
Current Behavior
When importing (not initializing, just importing!) this error will print out:
You may need an appropriate loader to handle this file type.
|           let parsed = JSON.parse(res);
|           return resolve(parsed);
|         } catch {
|           resolve(null);
|         }

Extra Information
This is probably a problem with my configuration. If any additional infos/files are needed, tell me.
Environment Information

Operating System: Windows 10 LTSC/10.0.17763 Build 17763
Pulse Version: 1.9.4
Framework/Framework Version (If applicable): Vue, project initiated with vue-cli and webpack preset

Tried to fix this for a few hours, didn't really worked out. This problem was on my side so I re-created a vue project with vue-cli's vue create command and then re-added my stuff & pulse by hand.
Just saying, if you're running into this issue, reinstall you vue cli project. Will only take about 20 minutes and save you problems.
Closing as it is now resolved


fix: match Deno version of prompt

Removes an extra space in the prompt, adds the default message.
I compared it to https://github.com/denoland/deno/blob/main/runtime/js/41_prompt.js#L33-L50, correct me if this is the wrong place please!

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


[Feature] A proposal to refactor addon dependency installation logic

Is your feature request related to a problem? Please describe.
There are a few problems with the current addon dependency installation logic:

Locally installed addon will be overwritten by upstream dependent addon installation logic
.  In cases where a addon has multiple topologies(such as loki、prometheus-server),  using one of them as the installation clusters of the current addon is not accurate
When a addon(such as loki) that can be installed on a subcluster depends on a addon(such as o11y-definitions) that can only be installed on the local cluster, installing the loki addon may change the clusters parameter of the o11y-definitions addon, which makes no sense since the o11y-definitions addon itself does not have a clusters parameter

Describe the solution you'd like

In the first case, add a check whether it is a local install, and if it is a local install, don't override it.
In the second case, change the addon's clusters parameter to get it from the secret file
In the third case,  add a test of whether the addon has a clusters parameterr

To summarize, the addon dependency installation logic will been refactored as follows:

Describe alternatives you've considered
For the third case, the method of modifying the topology policy of the application corresponding to the addon was considered, but when combing all the addon definitions in catalog repository, it was found that there was a case that a addon had more than one topology policy, so the method could not be implemented.
Additional context

second case:

third case:

/assign

The solution is very clear, I agree with this proposal.


Implement Lava tiles and LavaCrossing environment (#7)

Add color orange

Add new tile type Lava

Add new environment LavaCrossing

Add new drawPolyline method to Renderer

Hi there! Very glad to see you took up this feature :)
Overall, looks very good! :+1:
A few comments & requests:

I would rather not add new colors because it might break existing code. Sounds silly, but it's true. We could just say the lava is red (though you could still draw it orange-red in the UI)

LavaCrossingEnv9x9N2 => Should be LavaCrossingS9N2Env by convention

Would you mind posting a screenshot of the result?

Would also be great if you could add the level description to the README, along with a screenshot

Hey;  I really like the gist of these environments, and thought I'd give a quick shot at this simple issue to get a feel of the inner workings.  I hope I got the naming convention right, in the sense that I should use it for both environment class and environment string id?  I tried to keep the coding style consistent with the rest of the repo.
Here are some screenshots, one from each registered environment:

Let me know if you have further questions!

Looks good!
I found another minor issue. You shouldn't directly use np.random.choice and such. There's an internal RNG self.np_random. You should always use this for any pseudorandom generation. That way, we can guarantee that if someone sets env.seed(some_integer), they will always get the same environment for the same seed. Apart from that, ready to merge :)

Ooops, I hoped wrong.. I don't know how those two slipped my search!  Thanks for fixing.

No problem. Thanks very much for implementing this.


Switching time zones causes issues

Explore exactly what issues switching timezones causes and fix them.
Detect and fix any previous database issues this may have caused before this fix was released.

fixed in 7f33ee68 and 2a2dae06


Regional and static-site analyses ignore remove-trips modification

There should be a systematic difference in accessibility for the two scenarios being compared here, but there is only noise:

In a static-site analysis of the scenario with the route removed, the route still appears in paths.
Single-point results show expected differences in isochrones/accessibility.
The route in question is frequency-based, and it is the only route in its feed.

https://github.com/conveyal/r5/pull/484


App-designer: Outdated browser check

“You must use a Chrome or Safari browser (note: this is tested only on Chrome)”

See issue on forum

It looks like the built in DB on Chrome was removed by default in M119
However, it looks like you can re-enable it until M123 (Mid-2024) by using chrome://flags/#web-sql-access
The recommend switch is localStorage, sessionStorage, or IndexedDB


Not working with Project Diva: Mega Mix on 13.2.1

Installed these patches and there is no output for Mega Mix on 13.2 ... issue #7 has a patch but seems to be outdated.

Seems to be working perfectly fine on 14.1.1

Maybe give these patches a try? https://github.com/oocyberkevinoo/IPSwitch-MegaMix-Patches
should make the entire thing work just fine


Consistent icons across the UI

I love that not only the code is using great open source libraries but the UI as well.
As I was looking into the current icons used they are coming from font awesome, feather icons, storybook and there are a couple of custom ones.
I have a proposal to only use feather icons. "Feather is a collection of simply beautiful open source icons."
(Additional icons were made by me.)

👉 CodeSandbox
👉 DEMO

I wanted to migrate to feather icons myself but was unsure whether it contained all necessary icons. Now it's clear it doesn't, but I agree that it's not hard to draw them up ourselves (I do it in my projects using Feather icons, too).

Sweet. Couple nitpicks:

For the draw icon I'd prefer a wysiwyg icon (see https://github.com/excalidraw/excalidraw/issues/1879).
(really minor thing) For the text icon it seems weird it's serif font when our default is sans (but so is the current icon)
The canvas clearing icon seems less clear than the current one, I'd probably stick with the bin (this is ok in your demo)
The checkmark for color codes looks too big (this is ok in your demo)

Last and more importantly:

Let's make sure it works well for Dark mode too (https://github.com/excalidraw/excalidraw/pull/2006) (don't see a major reason why it wouldn't)

The move to flat icons is interesting. I like your toggles for the component editor (per your screenshot), the current style is super unclear to me (in normal mode and in dark mode - I never know which one is selected).

I feel the same way for the drawing icon.. feels strange.

@tomfejer could you open a PR, so we could see this in action? We want consistent icons for sure and we could iterate and gather feedback from the PR.

@xixixao updated the draw icon to the default one from feather (edit-3).

@lipis link to PR #2024


11103-Oracle GoldenGate Microservices for Big Data

Add auto startup process and Image is working as expected on Livelab tenancy

Livelab team has to pull the new update to clear the conflicts

@smadhukumar can you please have a look at the conflicts? Please have a look at URLs in all index.html and manifest.json files
index.html:
https://oracle.github.io/learning-library/common/ should be https://oracle-livelabs.github.io/common/
bit.ly/golivelabs should be developer.oracle.com/livelabs
manifest.json:
https://raw.githubusercontent.com/oracle/learning-library/master/common/ should be https://oracle-livelabs.github.io/common/
Furthermore, please check that you have the correct email address entered in all of the  manfest.json files<EMAIL_ADDRESS>

@klazarz klazarz: It has been taken care. Thank you

This branch has conflicts that must be resolved
ggma-for-bigdata/appendix/appendix.md
ggma-for-bigdata/initial-setup/initial-setup.md
ggma-for-bigdata/workshops/desktop/index.html
ggma-for-bigdata/workshops/desktop/manifest.json
ggma-for-bigdata/workshops/freetier-cloud/index.html
ggma-for-bigdata/workshops/freetier-cloud/manifest.json
ggma-for-bigdata/workshops/freetier/index.html
ggma-for-bigdata/workshops/freetier/manifest.json
ggma-for-bigdata/workshops/livelabs-cloud/index.html
ggma-for-bigdata/workshops/livelabs-cloud/manifest.json
ggma-for-bigdata/workshops/livelabs/index.html
ggma-for-bigdata/workshops/livelabs/manifest.json
ggma-for-bigdata/workshops/sandbox/index.html
ggma-for-bigdata/workshops/sandbox/manifest.json
ggma-for-bigdata/workshops/tenancy/index.html
ggma-for-bigdata/workshops/tenancy/manifest.json


Sticky navbar

Fixes issue #227
I have made the navbar sticky
Screenshot

there is some glitch between homepage and navbar ,when u scroll down right from top, @ShivanshAr97

@myhacktech the bug has been resolved.
Please see the issue once again.

@myhacktech the bug has been resolved. Please see the issue once again.

good

@ShivanshAr97 Fix the merge conflicts
__
  Summary: :hammer_and_wrench: This code needs a fix  |  Tags: Not reusable

@ShivanshAr97 Things aren't looking good in this way. As you can see:
Can you fix it? Or I guess this feature isn't needed now as there's already top to bottom button.
__        Summary: 🛠 This code needs a fix

Wait let me see. I had done better. But some error occured while merging conflicts maybe😭. Let me correct again

Look there was a background to it when navbar is scroll below a certain point

@ShivanshAr97 Your PR don't have any merge conflicts currently. Fix that and then I'll merge it.
__
  Summary: :hammer_and_wrench: This code needs a fix  |  Tags: Not reusable

@ShivanshAr97 Your PR don't have any merge conflicts currently. Fix that and then I'll merge it.
__        Summary: 🛠 This code needs a fix  |  Tags: Not reusable

Done
I have added the loader as well again

@ShivanshAr97 merge conflicts again
__
  Summary: :hammer_and_wrench: This code needs a fix  |  Tags: Not reusable

@ShivanshAr97 merge conflicts again
__        Summary: 🛠 This code needs a fix  |  Tags: Not reusable

Done


Failing on handle(url: url)

Description:
All parts of the OAuth process is working as expected, except for the OAuthSwift.handle(url: url) piece in the app delegate on the open url function in the AppDelegate. I must be missing a piece of the set up that is not defined in the documentation.
   let oauthswift = OAuth2Swift(
        consumerKey: "**************",
        consumerSecret: "",
        authorizeUrl: "<authorize url>",
        accessTokenUrl: "",
        responseType: "code"
    )

    oauthswift.allowMissingStateCheck = true

    oauthswift.authorizeURLHandler = SafariURLHandler(viewController: self, oauthSwift: oauthswift)

    // Authorize
    oauthswift.authorize(withCallbackURL: "com.devetry.ytp:", scope: "profile", state: "Custom", success: { (credential, response, params) in
        print("SUCCESS")
        print(credential)
    }) { (error) in
        print("ERROR: \(error.localizedDescription)")
    }

I am using the SafariURLHandler due to the easy handling of the web view you have in place, and have followed all the steps. I have the com.devetry.ytp URL Scheme set up in my Info.plist, and the app is able to successfully open the SafariWebView, authenticate, then close.
But in the AppDelegate, I have this piece of code:
    func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
        print("Open Url: \(url)")

        OAuthSwift.handle(url: url)

        return true
    }

The url that is printed from my print() function is as expected, but the handle() function completes the authorize function in the failure block with a -11 error...
I assume my problem has something to do with my callback url (com.devetry.ytp:) but no matter where I look, I can't seem to find what I am missing. Can someone help me find out what going wrong?
Thanks!
OAuth Provider? (Twitter, Github, ..):
custom oauth provider
OAuth Version:

[ ] Version 1
[x] Version 2

OS (Please fill the version) :

[x] iOS :
[ ] OSX :
[ ] TVOS :
[ ] WatchOS  :

Installation method:

[ ] Carthage
[x] CocoaPods
[ ] Manually

Library version:

[ ] head
[ ] v1.2.1
[x] v1.2 (Swift 4.0)
[ ] v1.0.0
[ ] v0.6
[ ] other: (Please fill in the version you are using.)

Xcode version:

[x] 9.3 (Swift 4.1)

[ ] 9.0 (Swift 4.0)

[ ] 9.0 (Swift 3.2)

[ ] 8.x (Swift 3.x)

[ ] 8.0 (Swift 2.3)

[ ] 7.3.1

[ ] other: (Please fill in the version you are using.)

[ ] objective c

Sorry for the lack of vocabulary, but what do you mean by retain my OAuthSwift object?
And yes, I get a -11 error, not a -10. The OAuthSwiftError.response is a 403 HTTP error, so forbidden. But that makes zero sense to me, I've already handled the authorization, and it succeeded and sent me back a code in the url that the handle() function is attempting to handle

could you post here the url receive passed to OAuthSwift.handle(

Yeah of course. So with the callback url set to 'com.devetry.ytp://host/_oauth/drupal?close', the url that is being passed to the OAuth.handle() is:
com.devetry.ytp://host/_oauth/drupal?close&code=the_code

Strange, if the code is in query...the serverError must not be thrown

I am getting back the serverError: [No access_token, no code and no error provided by server]

Difficult to help without debugging it
In OAuthSwift2.swift
there is open func authorize(withCallbackURL callbackURL: URL, scope: String, state: String, parameters: Parameters = [:], headers: OAuthSwift.Headers? = nil, success: @escaping TokenSuccessHandler, failure: FailureHandler?) -> OAuthSwiftRequestHandle? {
The code transform url to dictionary
if let query = url.query {
    responseParameters += query.parametersFromQueryString
}

Then your error must not be thrown if there is code inside query
if let code = responseParameters["code"]

So with debug we must look at the content of responseParameters
Maybe the "close" make an issue

I make a unit test and see the error
The "close" make the failure
close&toto=1&code= will work
I will fix

Thanks for the quick update!
After changing my callback url to  com.devetry.ytp://host/_oauth/drupal?close=1 I am now getting a retain (-11) error. I remember you said something about I need to retain my oauthswift object, as a class attribute, so I assume that's what I need to do.. But what do you mean by this? Can you point me to an example?
Thanks!

See demo app
Let oauthswift = is forbidden
Do
Self.oauthswift = ...

Okay, thanks!
So now I am getting a -11 error, which turns out to be a 403: Forbidden error from the server. I believe the issue lies with headers. I am passing in a session cookie in the headers field in the authorize() function. When the handle() function is called with the callback url,  are these headers still being passed? I think that could be causing the forbidden piece...


Uploading images to cloudinary from django application

Article checklist
NOTE: (Please ensure that you have only one open issue + linked pull request at a time. This will ensure that we complete the article in a timely manner from inception to publishing.)
Preliminary Checks - Formatting and Structure

[ ] Does your article follow any of the suggested structure formats? - see example formats
[x] Is your article properly formatted in Markdown? - see Github Markdown guide
[x] Have you used the correct folder and file structure? - see Contribution Guidelines
[x] Is your article over 750 words? - Tool: Wordcounter.net
[x] Have you used our preferred heading structure? - H3 (###) and up
[x] Does your article provide enough value and detail about your topic? - Articles should be clear, accurate, and fully explained.
[ ] Can your article be understood by beginners? - Assume the audience is smart but has no prior exposure to the common terminology in your article.
[x] Have you included a hero image that is 600x400 pixels and have the copyright to use it? - Tools: Pixlr Image Editor for resizing and Unsplash for Creative Commons images
[ ] In your PR - add a comment that states "This fixes #(enter your Idea Content Form #)" to link and close your Idea Content (issue) when the PR is merged.

Grammar & plagiarism checks

[ ] Have you spellchecked and grammar checked your article? - Tools: Write&Improve - ProWritingAid -  Grammarly
[ ] Please place your article through a 3rd party plagiarism checker? We suggest using Quetext, this tool is free and has a daily limit. We typically accept articles with 10% or less.
[ ] Have you checked your article for readability? - Tool: Hemmingway
[ ] Have you added sources for quotes and images that aren't yours?

Technical checks

[x] Are your code snippets properly formatted for syntax highlighting - see Syntax guide

Contribution guidelines
For first-time contributors and for more details, see Contributing Guidelines

Hey @shosenwales,
Thanks for the PR.
While submitting a PR, do not remove the "Article Checklist". (I have added it back). Please check the tick boxes, to check if you have done everything as per the guidelines, before we get started with the review.
Thank you.

Hi,
Please can i get slack invite link.
On Sat, Mar 27, 2021, 6:50 PM Srishilesh P S @.***>
wrote:

@.**** requested changes on this pull request.
Hey @shosenwales https://github.com/shosenwales,
Welcome to Section EngEd community!
Great article. I have suggested a few changes, please let me know when
they're done, we can move on to the tech review.
A few more changes/suggestions:

Add a hero image of 600x400 from Unsplash
Add your details with a headshot in Authors' page (authors
directory) like authors/srishilesh-p-s. Please refer the contributing
guide and revert back if any questions.
Please perform a grammar check using Grammarly, before you submit
for review.
Always add comments to your code snippets
Make sure to add image sources and footers describing about the image
Add . at the end of each line, and capitalize letters wherever
necessary.
Most importantly, do not remove the PR checklist. Ensure that you
check all the necessary check items.

Please don't hesitate to ask questions either here or via slack.
Thank you.
In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602757159
:

+Sometimes while working on applications that require the use of images, a simple process like uploading images to a server can become difficult.

+If you deploy your Django to platform like heroku, you can't save image.
⬇ Suggested change
-Sometimes while working on applications that require the use of images, a simple process like uploading images to a server can become difficult.
-If you deploy your Django to platform like heroku, you can't save image.
+Sometimes while working on applications that require the use of images, a simple process like uploading images to a server can become difficult.

In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602757398
:

@@ -0,0 +1,270 @@

+Sometimes while working on applications that require the use of images, a simple process like uploading images to a server can become difficult.
+If you deploy your Django to platform like heroku, you can't save image.

+In this tutorial, we look at how to save images in Django using CLoudinary.
⬇ Suggested change
-In this tutorial, we look at how to save images in Django using CLoudinary.
+In this tutorial, we learn about how to save images in Django using Cloudinary.

In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602757729
:

@@ -0,0 +1,270 @@

+Sometimes while working on applications that require the use of images, a simple process like uploading images to a server can become difficult.
+If you deploy your Django to platform like heroku, you can't save image.

+In this tutorial, we look at how to save images in Django using CLoudinary.

+Cloudinary is an end-to-end image- and video-management solution for websites and mobile apps, covering everything from image and video uploads, storage, manipulations, optimizations to delivery.
⬇ Suggested change
-Cloudinary is an end-to-end image- and video-management solution for websites and mobile apps, covering everything from image and video uploads, storage, manipulations, optimizations to delivery.
+Cloudinary is an end-to-end image and video management solution for websites and mobile apps. It covers everything from image and video uploads, storage, manipulations, and optimizations to delivery.

In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602758070
:

@@ -0,0 +1,270 @@

+Sometimes while working on applications that require the use of images, a simple process like uploading images to a server can become difficult.
+If you deploy your Django to platform like heroku, you can't save image.

+In this tutorial, we look at how to save images in Django using CLoudinary.

+Cloudinary is an end-to-end image- and video-management solution for websites and mobile apps, covering everything from image and video uploads, storage, manipulations, optimizations to delivery.

+### Prerequisites

+To follow along with this tutorial, you need Python3 installed on your machine.

+### Creating and setting up a new Django project
It would be great, if you could specify an objective of what this tutorial
is going to be about or what are you going to build
In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602758100
:

@@ -0,0 +1,270 @@

+Sometimes while working on applications that require the use of images, a simple process like uploading images to a server can become difficult.
+If you deploy your Django to platform like heroku, you can't save image.

+In this tutorial, we look at how to save images in Django using CLoudinary.

+Cloudinary is an end-to-end image- and video-management solution for websites and mobile apps, covering everything from image and video uploads, storage, manipulations, optimizations to delivery.

+### Prerequisites

+To follow along with this tutorial, you need Python3 installed on your machine.

+### Creating and setting up a new Django project

+Let's start by creating a new virtual environment
Add . at the end of line
In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602758241
:

+Cloudinary is an end-to-end image- and video-management solution for websites and mobile apps, covering everything from image and video uploads, storage, manipulations, optimizations to delivery.

+### Prerequisites

+To follow along with this tutorial, you need Python3 installed on your machine.

+### Creating and setting up a new Django project

+Let's start by creating a new virtual environment

+```bash
+$ python -m virtualenv env

+```

+Activate virtual environment
Add . at end of line.
Do this wherever necessary.
In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602758816
:

@@ -0,0 +1,270 @@

+Sometimes while working on applications that require the use of images, a simple process like uploading images to a server can become difficult.
+If you deploy your Django to platform like heroku, you can't save image.

+In this tutorial, we look at how to save images in Django using CLoudinary.

+Cloudinary is an end-to-end image- and video-management solution for websites and mobile apps, covering everything from image and video uploads, storage, manipulations, optimizations to delivery.

+### Prerequisites

+To follow along with this tutorial, you need Python3 installed on your machine.
Add a link for installation of python 3 (That would help the beginners)
In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602759461
:

@@ -0,0 +1,270 @@

+Sometimes while working on applications that require the use of images, a simple process like uploading images to a server can become difficult.
+If you deploy your Django to platform like heroku, you can't save image.

+In this tutorial, we look at how to save images in Django using CLoudinary.

+Cloudinary is an end-to-end image- and video-management solution for websites and mobile apps, covering everything from image and video uploads, storage, manipulations, optimizations to delivery.

+### Prerequisites

+To follow along with this tutorial, you need Python3 installed on your machine.

+### Creating and setting up a new Django project

+Let's start by creating a new virtual environment
Explain the need for creation of virtual environment in 1 - 2 lines.
Though this is out of the scope of article, this would help the beginners.
In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602759819
:

+Create new Django project

+```bash
+$ django-admin startproject photoapp

+```

+Create Django app

+```bash
+$ django-admin startapp photos

+```

+Lets add our app to the list of installed apps. Navigate to the "photoapp" directory and edit the settings.py file
⬇ Suggested change
-Lets add our app to the list of installed apps. Navigate to the "photoapp" directory and edit the settings.py file
+Let's add our app to the list of installed apps. Navigate to the photoapp directory and edit the settings.py file.

In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602760442
:

+Activate virtual environment

+```bash
+$ source virtual/bin/activate

+```

+Install Django

+```bash
+$ pip install django

+```

+Create new Django project
⬇ Suggested change
-Create new Django project
+Create a new Django project.

In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602760927
:

+Now lets head over to cloudinary website to create an account.

+Click on the Sign Up button and fill in your details to create an account.
⬇ Suggested change
-Now lets head over to cloudinary website to create an account.
-Click on the Sign Up button and fill in your details to create an account.
+Now, let's head over to the Cloudinary website to create an account.

+Click on the Sign Up button and fill in your details to create an account.

In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602761013
:

'django.contrib.messages',

'django.contrib.staticfiles',

'photos',

]

+```

+### Setting up Cloudinary

+Now lets head over to cloudinary website to create an account.
+Click on the Sign Up button and fill in your details to create an account.

+### Installation

+Install the cloudinary module in our project
⬇ Suggested change
-Install the cloudinary module in our project
+Install the Cloudinary module in our project

In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602761329
:

+### Setting up Cloudinary

+Now lets head over to cloudinary website to create an account.
+Click on the Sign Up button and fill in your details to create an account.

+### Installation

+Install the cloudinary module in our project

+```bash
+$ pip install cloudinary

+```

+Next thing is to add Cloudinary to the list of installed apps in settings.py
⬇ Suggested change
-Next thing is to add Cloudinary to the list of installed apps in settings.py
+Next thing is to add Cloudinary to the list of installed apps in settings.py.

In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602761574
:

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'photos',

'cloudinary'

]

+```

+We will also need to include Cloudinary's python classes in settings.py
Enclose settings.py within ``. And, add a . at the end of line.
Make these changes wherever necessary.
In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602762183
:

+To use the Cloudinary Django library, we have to configure at least our cloud_name, api_key and api_secret .

+we can find our account-specific configuration credentials in the Dashboard page of the account console.
⬇ Suggested change
-To use the Cloudinary Django library, we have to configure at least our cloud_name, api_key and api_secret .
-we can find our account-specific configuration credentials in the Dashboard page of the account console.
+To use the Cloudinary Django library, we have to configure at least our cloud_name, api_key and api_secret. We can find our account-specific configuration credentials in the Dashboard page of the account console.

In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602762507
:

+```

+We will also need to include Cloudinary's python classes in settings.py

+```python

import cloudinary

import cloudinary.uploader

import cloudinary.api

+```

+### Configuration

+To use the Cloudinary Django library, we have to configure at least our cloud_name, api_key and api_secret .
+we can find our account-specific configuration credentials in the Dashboard page of the account console.

+
Add image source (if not yours), and add an image footer describing about
the image. Something like this:
Cloudinary dashboard page
In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602762692
:

+To use the Cloudinary Django library, we have to configure at least our cloud_name, api_key and api_secret .

+we can find our account-specific configuration credentials in the Dashboard page of the account console.

+

+```python
+cloudinary.config(

cloud_name = "your_cloud_name",

api_key = "Your_api_key",

api_secret = "Your_api_secret"

+)
+```

+### Creating a model

+In the “photos” directory, edit the models.py file and add the following lines of code to it.
Enclose photos and models.py within ``
In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602763094
:

+# migrating the app and database changes

+$ python manage.py makemigrations

+# final migrations
+$ python manage.py migrate
+```

+Then we create a superuser by running the command below

+```bash

$ python manage.py createsuperuser

+Now let's register the photos model in the admin.py file so we can modify it in the Django admin section.
⬇ Suggested change
-Now let's register the photos model in the admin.py file so we can modify it in the Django admin section.
+Now let's register the model of photos in the admin.py file, so we can modify it in the Django admin section.

In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602763256
:

+Now let's register the photos model in the admin.py file so we can modify it in the Django admin section.

+```python
+from django.contrib import admin
+from .models import photos

+admin.site.register(photos)

+```

+Let's now login to the admin page.

+To login to the admin section, go to this link localhost:8000/admin and login with our just created superuser details.
⬇ Suggested change
-To login to the admin section, go to this link localhost:8000/admin and login with our just created superuser details.
+To login to the admin section, go to this link localhost:8000/admin and login with our just created superuser details.

In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602763613
:

+```python
+from django.contrib import admin
+from .models import photos

+admin.site.register(photos)

+```

+Let's now login to the admin page.

+To login to the admin section, go to this link localhost:8000/admin and login with our just created superuser details.

+

+
It is always advised to add an image alternative.
And, add image source and footer as mentioned previously.
In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602763848
:

+admin.site.register(photos)

+```

+Let's now login to the admin page.

+To login to the admin section, go to this link localhost:8000/admin and login with our just created superuser details.

+

+

+Now, let's add an image in the photos category to test if it uploads to cloudinary.

+Click on pictures, then click "Add Photo" to add an image
Replace "" with ``
In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602764035
:

+Now, let's add an image in the photos category to test if it uploads to cloudinary.

+Click on pictures, then click "Add Photo" to add an image

+

+

+To confirm if the image was uploaded successfully, click on the just added image, clik on the link there.

+We can also confirm by going tp the "media library" section on our cloudinary account.

+### Creating View

+Now let's create a view to view the image. Add the following code to your views.py file
Enclose within ``
In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602764231
:

+We can also confirm by going tp the "media library" section on our cloudinary account.

+### Creating View

+Now let's create a view to view the image. Add the following code to your views.py file

+```python
+from django.shortcuts import render

+def index(request):

return render(request, 'index.html')

+```

+Let's create our "templates" folder. Inside the folder, create a index.html file.
⬇ Suggested change
-Let's create our "templates" folder. Inside the folder, create a index.html file.
+Let's create our templates folder. Inside the folder, create an index.html file.

In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602764396
:

+### Creating View

+Now let's create a view to view the image. Add the following code to your views.py file

+```python
+from django.shortcuts import render

+def index(request):

return render(request, 'index.html')

+```

+Let's create our "templates" folder. Inside the folder, create a index.html file.

+photos/templates/index.html

+Before adding our html code, let's quickly create a new url for newly created view.
⬇ Suggested change
-Before adding our html code, let's quickly create a new url for newly created view.
+Before adding our HTML code, let's quickly create a new URL for the newly created view.

In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602764790
:

+```python

from django.db import models

from cloudinary.models import CloudinaryField

class photos(models.Model):

   Tittle = models.CharField(max_length=100)

   image = CloudinaryField('image')

Add code comments
In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602764923
:

+```python

+from django.contrib import admin
+from .models import photos

+admin.site.register(photos)

Explain what is being done here
In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602764999
:

+from django.contrib import admin

+from django.urls import path
+from photos import views

+urlpatterns = [

path('admin/', admin.site.urls),

path('', views.index, name='index'),

+]
Add code comments
In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602765081
:

+from django.shortcuts import render

+from .models import photos

+def index(request):

photo = photos.objects.all()

ctx = {'photo':photo}

return render(request, 'index.html', ctx)

Add comments
In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602765285
:

+

Cloudinary Fish

{% for pic in photo %}

{{pic.Tittle}}

   <img src="{{pic.image.url}}" alt="fish">

{% endfor %}

+
+

+```

+

+### Conclusion
+We've seen how we can add upload images to cloudinary from our Django app. For further learning on image/video upload and transformation using cloudinary. Check out the link below

Add a GitHub repository link containing full codes
In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602765434
:

+

Cloudinary Fish

{% for pic in photo %}

{{pic.Tittle}}

   <img src="{{pic.image.url}}" alt="fish">

{% endfor %}

+
+

+```

+

+### Conclusion
+We've seen how we can add upload images to cloudinary from our Django app. For further learning on image/video upload and transformation using cloudinary. Check out the link below

Add key takeaways from this article, as bulleted points
In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602765590
:

@@ -0,0 +1,270 @@

+Sometimes while working on applications that require the use of images, a simple process like uploading images to a server can become difficult.
+If you deploy your Django to platform like heroku, you can't save image.

+In this tutorial, we look at how to save images in Django using CLoudinary.

+Cloudinary is an end-to-end image- and video-management solution for websites and mobile apps, covering everything from image and video uploads, storage, manipulations, optimizations to delivery.

+### Prerequisites

+To follow along with this tutorial, you need Python3 installed on your machine.

Add a Table of contents section
In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602766541
:

@@ -0,0 +1,270 @@

+Sometimes while working on applications that require the use of images, a simple process like uploading images to a server can become difficult.
+If you deploy your Django to platform like heroku, you can't save image.

+In this tutorial, we look at how to save images in Django using CLoudinary.

+Cloudinary is an end-to-end image- and video-management solution for websites and mobile apps, covering everything from image and video uploads, storage, manipulations, optimizations to delivery.
In addition to this, please also add what other solutions are present, how
it is better than others, what is the current method used, and if possible
give advantages of using this.
In overall, you will have to give more details in the introductory
paragraph and the conclusion.
In
articles/uploading-images-to-cloudinary-from-django-application/index.md
https://github.com/section-engineering-education/engineering-education/pull/1877#discussion_r602760239
:

+Create new Django project

+```bash
+$ django-admin startproject photoapp

+```

+Create Django app

+```bash
+$ django-admin startapp photos

+```

+Lets add our app to the list of installed apps. Navigate to the "photoapp" directory and edit the settings.py file
Always enclose unique words or variables or filenames within `` to
highlight them
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/section-engineering-education/engineering-education/pull/1877#pullrequestreview-622687241,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGUVYRN7RDW6HF74AXLISW3TFYLG5ANCNFSM4Z46IOSA
.

@shosenwales
You can join via this invite: https://join.slack.com/t/sectionio-community/shared_invite/zt-6174cklt-YFpHmQIAUmc927jqN2EIZQ

Hi, I think I fixed all issues. kindly review

Thank you, I will do that.
On Mon, Mar 29, 2021, 4:52 PM Srishilesh P S @.***>
wrote:

@.**** approved this pull request.
Hey @shosenwales https://github.com/shosenwales,
Thanks for making the requested changes.
I have made some corrections to your entire article. Make sure you go
through every commit carefully, to understand how you could improve on your
future articles.
As a general suggestion:

Always write meaningful sentences (many sentences lacked clarity).
Always add inline comments to your code snippets.
Make sure to explain code snippets in-detail.
Don't skip any step while explaining code snippets
Add info about everything that you use. Sometimes the reader might
not be familiar with something, that everyone is familiar with.

Moving this to the final review.
Feel free to reach to me, in case of any clarifications. Would be happy to
help!
Thank you.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/section-engineering-education/engineering-education/pull/1877#pullrequestreview-623386698,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGUVYRNGUUJJ5HGQXTRD7VTTGCO2BANCNFSM4Z46IOSA
.

plagiarism check done

Hi @srishilesh, trust you are doing well. Just checking for updates...is there anything that needs to be done from my end.

Hi @srishilesh, trust you are doing well. Just checking for updates...is there anything that needs to be done from my end.

Hey @shosenwales,
Everything's good. This article has been moved to the final review queue.
Now, Hector will be doing the final review before publishing.
Thank you.

Oh alright, thanks
On Mon, 12 Apr 2021, 1:56 pm Srishilesh P S, @.***>
wrote:

Hi @srishilesh https://github.com/srishilesh, trust you are doing well.
Just checking for updates...is there anything that needs to be done from my
end.
Hey @shosenwales https://github.com/shosenwales,
Everything's good. This article has been moved to the final review queue.
Now, Hector will be doing the final review before publishing.
Thank you.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/section-engineering-education/engineering-education/pull/1877#issuecomment-817787468,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGUVYRMB4ZEQVI6JQ3AV2ZLTILUWNANCNFSM4Z46IOSA
.

great work gentlemen @shosenwales
cc @srishilesh

Thanks @hectorkambow


CAD-880: Forwarder and acceptor performance

description
Previously TraceForwarder was sending LogObjects one by one. Moreover, each log item corresponded to 2 ByteStrings: encoded hostname and encoded LogObject. Now TraceForwarder collects LogObjects in the queue and sends them periodically as one big ByteString. The period is defined in configuration (as a value in millisecs). As e result, if we're sending 100 log items, it won't be 200 small ByteStrings, it will be 1 small ByteString (with hostname inside) and 1 big ByteString (with 100 items inside).
checklist

[x] compiles (cabal v2-build or stack build)
[x] tests run successfully (cabal v2-test or stack test)
[ ] documentation added
[ ] link to an issue
[ ] add milestone (the current sprint)

bors r+


JavaScript Jump to definition within html script tag does not work properly.

For example, pressing Alt-. in the following screen,

it tries to jump to editor tab for 'jjj.html*1001.js' though there is no such file.
Tested on webida.org.

'jjj.html*1001.js' is the virtual file name for the JavaScript fragment. It should be used within assist-worker.
We should convert such names and positions to real names and positions so that editors can work properly.
Due to similar reasons, renaming JavaScript variables in HTML does not work, either.


Training visualization?

Is there any possibility to visualize word-embeddings, train and test loss, or another parameters of the network?

For training and testing loss, you should be able to parse the log and plot the relevant curves. If needed, training loss can be logged more frequently by passing a lower value to -log_interval.
We typically inspect the network's parameters during training by inserting debug layers into the network graph, e.g. via mutils.makeDebug. Again, this amounts to parsing the program output.
There's no built-in functionality to visualize embeddings, but it should be relatively straightforward to dump the learned source and target lookup tables of a model and then use an external program like t-SNE to visualize them.
With a bit of additional code, some of this could be done automatically during training with visdom (which is also used for attention visualization in generate-lines). PRs would be very welcome :)


cmake: For overlays, install to sdk-overlay target by default, but don't hardcode it

@swift-ci Please smoke test


#543 - prefer ipv4 to ipv6 addresses

MarkLogic server prefers ipv4 addresses to ipv6 addresses.
Because the client's address factors into validation of the nonce in DIGEST authentication, the client must continue to use the same address while using the nonce.

All the unit tests ran fine.


MatDatePicker doesn't remember selected date in calendar.

Currently the calendar always defaults to the current date instead of the selected date which is extremely annoying and user unfriendly. I only glanced at the code but I suspect it's because the Flatpickr instance must get recreated on each render cycle and the state is not being preserved and set after render. All the examples on the MatBlazor demo site exhibit this behavior so I didn't bother with a repro.
Any chance there will be a fix for this soon? Any known workaround? Perhaps allowing the defaultDate to bet set would help???

Currently the calendar always defaults to the current date instead of the selected date which is extremely annoying and user unfriendly. I only glanced at the code but I suspect it's because the Flatpickr instance must get recreated on each render cycle and the state is not being preserved and set after render. All the examples on the MatBlazor demo site exhibit this behavior so I didn't bother with a repro.
Any chance there will be a fix for this soon? Any known workaround? Perhaps allowing the defaultDate to bet set would help???

I looked closer at the MatDatePicker code and it appears to be setting the defaultDate value in the click handler when it opens Flatpickr which makes me think it's not a simple state issue as I initially assumed. I don't see any obvious reason why it doesn't work as expected so I'm hoping for a fix soon are at least a workaround.

Currently the calendar always defaults to the current date instead of the selected date which is extremely annoying and user unfriendly. I only glanced at the code but I suspect it's because the Flatpickr instance must get recreated on each render cycle and the state is not being preserved and set after render. All the examples on the MatBlazor demo site exhibit this behavior so I didn't bother with a repro.
Any chance there will be a fix for this soon? Any known workaround? Perhaps allowing the defaultDate to bet set would help???

I looked closer at the MatDatePicker code and it appears to be setting the defaultDate value in the click handler when it opens Flatpickr which makes me think it's not a simple state issue as I initially assumed. I don't see any obvious reason why it doesn't work as expected so I'm hoping for a fix soon are at least a workaround.

I think I may have found the issue. It looks like the defaultDate isn't actually being set on the flatpickr options on the Javascript side in matDatePicker.js

Are you using Server side or Client side, because on the Server side demo website it starts with the current date selected (https://www.matblazor.com/DatePicker), but whereas the Client Side demo website does not (https://samprof.github.io/MatBlazor/DatePicker).

Hi!
A little late, but this was fixed in commit 733f264f7fa8cb4333122cc1457c10ec910bdde8
Thanks for using MatBlazor


add test case for append() bug appending to only last selected elemen…

…t instead of every instance.
The problem was in adjacent() method, a dependency of append().
Root cause: line 31 in adjacent.js: changed fragment.appendChild(n); to fragment.appendChild(n.cloneNode(true)); since appendChild will remove the selected element from the dom and relocate it to the next node in the loop, thereby insuring it will only ever be appended to last of selected nodes.
Edit test case by adding done() as recommended by error thrown by mocha when running test suite.

@franciscop I also solved this by using `fragment.cloneNode(true) in append.js. Do you have a preference?
u.prototype.append = function(html, data) {   return this.adjacent(html, data, function(node, fragment){     node.appendChild(fragment.cloneNode(true));   }); };
Also, I just realized I incorrectly edited the "Keeps the events when appending" test by added done() at the end. It appears events are not being copied using my current solutions. I'll look into it further and I welcome any suggestions.
Thanks.

The done() should be inside the on('click', function(){}); statement if I'm not mistaken, as in:
on('click', function(){ done(); }));

Because the trigger should interrupt the normal flow of the code in a similar way to setTimeout(function(){}, 0). So the done should happen inside the event callback and not after the trigger().

So the problem is that the event is not being triggered. BTW I prefer the way in your pull request n.cloneNode(true) because it avoids code repetition.

@franciscop I've run into a blocker for this PR. At the moment I can't find a way clone a DOM node's event listeners.
node.cloneNode(true) only clones the node and it's children, not any event listeners.
In chrome there is a getEventListeners function that could be used, but no other browser seems to support it.
According to this resource this is how jQuery solves this problem:

jQuery, YUI, Moo etc. keeps a copy of the eventListeners when you add them to elements so that you have access to a list.
....
According to DOM 3 Events, when you used addEventListener there should be an event listener list (EventListenerList DOM 3 Events), but it has yet to be implemented by any browser (Sept, 2012). Until then there is no easy getEventListener method. If you want to programmatically triggering events, keep a copy of a list globally or use a library.

I've been searching and it's true, it seems to be a really big issue. The HTML elements have a property called _e where I'm storing the events, so if they are copied we could just transverse all the elements and reasign them

Ah I see. I'm a dummy I completely missed that in the source code. Thanks @franciscop!

@franciscop  I believe I've fixed this issue. The fix relies on the clone method created in this PR https://github.com/umbrellajs/umbrella/pull/66
Once merged I will update this PR with the fix.  Cheers.


Dublicate files when renaming

When renaming a source file in remix, the original one is kept and a new copy with the new name is created, instead of what the user would expect by the action.
Is this an issue or a feature, I can't really tell.

that's a bug :)

should be fixed by now. please double check and reopen if not


Review poliastro Orbit design

After discussing #369, @pablogsal has suggested reviewing the design of Orbit objects, in particular the delegation of properties to BaseState subclasses.
The design in poliastro 0.3.0 consisted in one State object and nothing else (more or less the equivalent to today's Orbit). State.__init__ only accepted cartesian vectors, a non-singular, intuitive way of initializing the orbits. Therefore State.from_elements converted the elements to (r, v) and then created the object.
However, this is an utter waste of resources, since in the case I wanted to do
ss = State.from_elements(a, ecc, inc, ...)
ss.ecc

this would convert the elements to (r, v), and then convert back to (a, ecc, inc, ...) to retrieve ss.ecc. These problems were described in the wiki:
https://github.com/poliastro/poliastro/wiki/Different-element-sets
And in #17. The proposed solution was to split State in subclasses that would know how to convert among themselves and retrieve the different properties. This was accomplished in #61, but suffered from circular imports and other limitations. The rest of the story is better described here:
https://github.com/poliastro/poliastro/wiki/Simplify-State-objects
After this, in #135 I created the Orbit class and made it contain a subclass of BaseState to separate functionality and avoid circular imports.
The remaining problem is that, to make Orbit.ecc possible without doing Orbit.state.ecc, I delegate all the properties to State:
https://github.com/poliastro/poliastro/blob/34a9e2c83cd77e918feb0182d2fa162ba06cbd07/src/poliastro/twobody/orbit.py#L379-L399
This is less than ideal because, apart from being the root cause for #369, it makes the code magical and, in @pablogsal 's opinion, breaks the semantic relation between Orbit, BaseState, and their properties.
I open this issue to continue discussion and look for alternative designs.

Another problem derived from this design: Orbit properties are not discoverable, they don't autocomplete nor appear in the docs #435


Formatting on admin pirep page

There is a format issue on the admin pirep page. When you go to look at the pireps, only 2 show at the top, the rest are moved down below the left column.

Solved/closed by the 7.0.0-dev+201206.883e87 dev build. (Latest dev as of 06DEC2020)


Proposal: nice way to write ad-hoc validators

Hopefully this wasn't proposed before.
@attr.s
class C(object):
    x = attr.ib()
    y = attr.ib()

    @x.validator
    def x_smaller_than_y(self, attribute, value):
        if value >= self.y:
            raise ValueError("'x' has to be smaller than 'y'!")

If you managed to guess what this does it means the syntax is intuitive enough :)
Similar syntax familiar from property.deleter and friends can also be useful for other parts, but for validators it feels like a natural fit (especially with the recent change to allow multiple validators).

That looks interesting indeed!

fixed in 37d38c4dc3f6235992698ac5caaf0565517a3125

My question is: why is attribute included? It is not used in the validator function. What purpose does this serve?  How would it be used. The docs at this opint make it seem like this is required for the api to work but it is just ignored in the example given.
Can someone provide an example where attribute is used to illustrate the logic to me?

The validator argument to attr.ib, which preceded the decorator, takes the same arguments. So the decorator takes them for consistency.

Yep that's the reason.  Internally they're treated the same.  We could add some magic to make it optional I guess but no one bothered so far.


Implement basic user search flow

SEARCH BAR
search bar with filler text indicating current abilities (Search by 0x address...)
RESULTS DROPDOWN
after complete address is entered, display profile result in a dropdown that shows profile information (image, name, emoji, perhaps twitter and github)
if address is incomplete (not enough characters), display message indicating so
if no profile exists, display message indicating so
... anything missing?


Allow table providers to indicate their type for catalog metadata

Which issue does this PR close?
Closes #191.
Rationale for this change
This allows registered TableProviders to approximately indicate the mechanism used to retrieve data during query execution, which in turn allows tables to be logged with a table_type column in information_schema.tables. This was previously partially supported by classifying all registered tables as BASE TABLE and all generated system tables as VIEW.
This means that DataFusion consumers can now build systems that allow end-users to differentiate between relation types. For example, you could build a TableProvider that stores a query plan, use this as a view in your execution context, and end users would be aware that any queries over it in turn trigger a query internally. This is also often used to split relations into different lists for tables vs views in GUI/IDE setups.
What changes are included in this PR?

Added TableType enum
Exposed new trait method, TableProvider::table_type
Updated information_schema builder to use new table types

Are there any user-facing changes?
TableProvider::table_type is introduced as a new trait method, but comes with a default implementation returning TableType::Base to preserve back-compact.

Codecov Report

Merging #205 (08e0044) into master (ddaea81) will decrease coverage by 0.01%.
The diff coverage is 72.22%.

:exclamation: Current head 08e0044 differs from pull request most recent head 589d8fa. Consider uploading reports for the commit 589d8fa to get more accurate results

@@            Coverage Diff             @@
##           master     #205      +/-   ##
==========================================
- Coverage   76.35%   76.33%   -0.02%
==========================================
  Files         134      134
  Lines       23018    23042      +24
==========================================
+ Hits        17576    17590      +14
- Misses       5442     5452      +10

Impacted Files
Coverage Δ

datafusion/src/execution/context.rs
92.63% <68.75%> (-0.31%)
:arrow_down:

datafusion/src/catalog/information_schema.rs
86.72% <72.22%> (-2.06%)
:arrow_down:

datafusion/src/datasource/datasource.rs
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


Linked website redirects to another page

Hi!
I noticed that the link http://opensource.finn.no/recsys_slates_dataset/ is now redirecting to https://opensource.finntech.no.
I remember in the past, this link held a GitHub page (or similar) with information on the dataset. Is this change expected?
Bests!

Yeah, it should redirect to a documentation page. I checked internally, and there were some security vulnerability stuff with the setup so they removed it. Will need to check up on that.
however, if you look at the .ipynb files in the repo, all the documentation should be there on the various helper packages :) (see e.g. https://github.com/finn-no/recsys_slates_dataset/blob/main/dataset_torch.ipynb)

Alright! I'll check out those Jupyter notebooks 👍
Thanks!


bob: Add lightweight generics to foundation objects

See https://github.com/exercism/xobjective-c/issues/45

doesn't need it


TidyTree as a React component

This isn't working yet but I think it's close.
Firstly I followed much of Dave's work here https://github.com/VEuPathDB/web-monorepo/pull/559
But I wanted it to be a components component, not something only working in ortho-site.
So I started with a super-simple story, and I'm working backwards from there.

cd packages/libs/components
yarn add d3v5@npm:d3@5 - adds version 5 with the alias d3v5
yarn add tidytree@github:d-callan/TidyTree
yarn add --dev<EMAIL_ADDRESS><EMAIL_ADDRESS>- Storybook uses webpack 4, this page suggests v1.1.1 is the last suitable for webpack 4
make crude tidytree.d.ts for now
add Dave's shimming to .storybook/main.js
make story
copy test data to story directory
find that patristic isn't available to tidytree.js
add an extra shim for patristic in .storybook/main.js - this wasn't needed in Dave's PR but that was using webpack 5.
it seems to work!

Notes
I tried to get storybook-addon-deep-controls working for the nested args object in the story, but I couldn't get it to work. Have given up!
Question
How do we get the shimming to work when the component is used outside of Storybook? (OK, I know there isn't an exported component yet, but there will be.)

tidytree margin specs are not [ top, right, bottom, left ] as indicated in the code, and it's difficult to work out what is going on. For now we will work with zero margins and live with the leaf nodes being chopped in half and the left-most edges not being very clear either.

tidytree margin specs are not [ top, right, bottom, left ] as indicated in the code, and it's difficult to work out what is going on. For now we will work with zero margins and live with the leaf nodes being chopped in half and the left-most edges not being very clear either.

Fixed these in our fork :-) https://github.com/d-callan/TidyTree/pulls
Now we have the vertical alignment bit pretty much sorted. Can start building a tree-table component next.
First I think I will nail down this TidyTree.tsx component to only do horizontal dendrograms - or wrap a horizontal dendrogram component around it. The rowHeight prop would make no sense in a vertical tree, for example. Not sure how general purpose TidyTree will need to be...

Would the props be better split into treeProps and tableProps rather than extending the tree props as done presently?

Would the props be better split into treeProps and tableProps rather than extending the tree props as done presently?

I did this while adding the checkbox selection, which seems to work fine.

I factored out the shimming here https://github.com/VEuPathDB/web-monorepo/pull/813/commits/c62b6222de8b23f606c35807884e1fd0810eb596
Hopefully this will be visible to other packages as const { addD3Shimming } = require('@veupathdb/components/webpack-shimming'); but we will see! I might have to move it into somewhere that gets packaged up?


Updating build/version

What is the purpose of this change? What does it change?

Was the change discussed in an issue?
fixes #???

How to test changes?

/approve


Ugly Number With Recursion (Addition of Ugly Number Problem #1286)

Have you read the Contributing Guidelines on Pull Requests?
(Write your answer here.)
Yes
(Write your answer here.)
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
Addition of Ugly Number Problem #1286

@all-contributors please add @ErzaTitania-2001 for code


CFFL

CFFL

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_39td6t6a3u/clone/recipe/meta.yaml:15: pip_install_args: pip install should be run with --no-deps.
ERROR: /tmp/abs_39td6t6a3u/clone/recipe/meta.yaml:21: missing_wheel: For pypi packages, wheel should be present in the host section
WARNING: /tmp/abs_39td6t6a3u/clone/recipe/meta.yaml:41: missing_description: The recipe is missing a description
Errors were found


brfs replaces require statement but not readFileSync when path is not required

So the relevant code is here:
const fs = require('fs')
const disclaimer = fs.readFileSync(path.join(__dirname, '..', '..', 'USER_AGREEMENT.md')).toString()

In my thoughtlessness, I forgot to include a require('path') in my code, but finding this error was troublesome because brfs currently removes the require statement, but keeps the disclaimer line in the output code.
Thus, errors pop up about fs not being defined, but this made it hard to detect that I had forgotten a require statement.
It would be helpful if an error were thrown when readFileSync lines aren't subbed out. Thank you very much! =)

This is no longer the case in brfs@2. Thanks!


(feat): Check if operator has missed the task

In SubmitTaskResponse function, from aggregator/internal/pgk/server.go, checking whether the operator missed any task is needed.

Closed because it's not longer relevant.


Add note to event

Context
It seems to be usefull adding custom notes to specific events. For example: "No barrier-free entry possible." or "Beverages available". A context menu will be needed in the frontend for this feature (#13).

Should be done in ebe7e35a7748d7b22348602e89d32ccbc5d50e17.


Pin mqtt to compatible version, update apprise

https://github.com/dgtlmoon/changedetection.io/issues/2241

@dgtlmoon do you have a release coming soon? This MQTT issue has been impacting me and I figured I would check before trying to rollback a version or two

@xconverge just released .17 :)


[Enhancement] Toast-Text should be centered

Summary
The left aligned text don't look that good in some cases. A additional property "TextAlignment" in the MessageOptions would be great.
API Changes
Add Labels HorizontalOrientation property and bind it to new created "TextAlignmet" property in the MessageOptions.
Intended Use Case
Nearly every time when using a ToastMessage. Maybe its German taste, but centered text looks better sometimes.
Who Will Do The Work?

[x] I am willing to take this on myself (But I'm afraid I'm not skilled enough, so someone with more experience should do it)
[x] Just putting this out there for someone to pick up

Thanks @KrizCologne! Is this a bug fix or an enhancement?
We are no longer adding new features to Xamarin Community Toolkit, focusing on the .NET MAUI Community Toolkit.
However, we are still merging Bug Fix PRs.
I've posted more information about the Future Of Xamarin Community Toolkit here: https://devblogs.microsoft.com/xamarin/the-future-of-xamarin-community-toolkit/?WT.mc_id=mobile-0000-bramin

Because in Xamarin Community Toolkit we use Snackbar for both Toast and Snackbar, the message is displayed according to Snackbar behavior (aligned to the left).
It is fixed in .NET MAUI Community Toolkit.


[CYPRESS] Add e2e test for card payment for Cybersource Connector for Successful Flow

The Hyperswitch SDK is a versatile tool built to streamline payment integration for developers. It simplifies the process of adding multiple payment methods, allowing you to quickly implement support for various gateways without the need to manually integrate each one. With Hyperswitch, you can efficiently manage payments across platforms, reducing complexity and boosting development speed.
Pre-requisites:
Please follow the README for guidelines on file structure, formatting and instructions on how to set up and run Cypress.
Description:
This task involves adding a cypress e2e test for card payment for Cybersource Connector for Successful Flow
🔨 Possible Implementation
Locate the element for this payment method, perform the click action on it and assert whether redirection happens success.
Contribution Guidelines:

Fork the repository and create a new branch for your work.
Ensure the WebSDK follows best practices for API integration and field rendering.
Write clean, well-documented code with clear commit messages.
Make sure to follow our coding standards and contribution guidelines.

Helpful Resources:

Link to WebSDK documentation: WebSDK Docs
Link to the API endpoint specifications: API Docs

If you have any questions or need help getting started, feel free to ask in the comments!
🔖 Note:
Once assigned, please drop a mail for required credentials at<EMAIL_ADDRESS>Submission Process:

Ask the maintainers for assignment of the issue, you can request for assignment by commenting on the issue itself.
Once assigned, submit a pull request (PR).
Maintainers will review and provide feedback, if any.
Maintainers can unassign issues due to inactivity, read more here.

Refer here for Terms and conditions for the contest.

Hi! I would like to contribute to this issue, can I be assigned to it?

Hey @und1n3 Assigning this issue to you, thanks for participating.

Hey @aialok,
Please keep in mind that for this issue, please submit a PR on @juspay/hyperswitch-web repo, and link it to the issue.

Hey @und1n3
Kindly let us know, if you're still working on the issue? If you have any questions or need assistance, feel free to reach out in the community.

Sorry, life got in the way, I won't be able to work on the issue. I apologise for the inconveniences😔


stackdriver: parse trace context without regex

Changes
Simplify parsing trace context to avoid the complexity of regular expressions (and the added dependency).
Follow-up for #25.
Merge requirement checklist

[x] CONTRIBUTING guidelines followed
[x] Unit tests added/updated (if applicable)
[x] Appropriate CHANGELOG.md files updated for non-trivial, user-facing changes
[x] Changes in public API reviewed (if applicable)

The code that is changed here was added in #25 (from January), which was merged after the latest release (0.18.0, from November). So from a downstream perspective, there is no change in this PR.


The script doesnt go back to Main Menu

After downloading a song (individual not playlist) the script doesn't return to the main menu. Also, it would be good to add an option to save the song format that way whenever you open the script after properly configure it you can go straight to the download section.
Maybe an automatic option to go back to download instead of main menu?

First of all, thank you for taking your time writing this suggestion and bug report!
You mean that when you download a playlist, it does go back to the main menu, or you didnt test with playlists?
Imma add that as a feature really soon! It's a great idea💡

Hey, yeah, i modified the script to allow that, i think i did a pull request for it.

I dont find any pull request, are you sure you did push it?


Add Horizontal Datum Name Check

Is this a new check? Please describe the check and the field.
<Collection/SpatialInfo/HorizontalCoordinateSystem/GeodeticModel/HorizontalDatumName>: check to see if a horizontal datum name is provided.
Describe the checks in steps

Check to see if a horizontal datum name is provided.
If not, recommend providing a horizontal datum name.

Is there a similar check already implemented? Please list the name of the check
ECHO10 Data Center Name Presence Check
Additional context
Refer to the Horizontal Datum Name Check in the QA Rules spreadsheet for more information.

addressed by: 90a8688


atom: 1.4.3 -> 1.5.3

Verified with

nix-build -A atom
nix-env -f . -i atom
Opened editor, checked "About" screen

LGTM


Unable to load dynamic server library on Mac

What is the issue?
When using the llm package and calling New the auto-detect dynamic lib fails auto-detect.
This is related to pull request https://github.com/ollama/ollama/pull/2403 and issue https://github.com/ollama/ollama/issues/2386.
The current fix does not set available dynamic libs after auto-detection causing the dynamic lib path to be empty.
availableDynLibs should be checked and used after calling native init.
What did you expect to see?
The expectation is that the dynamic lib will be found
Steps to reproduce
import LLM package and attempt to initialize an LLM using New
Are there any recent changes that introduced the issue?
No response
OS
macOS
Architecture
arm64
Platform
No response
Ollama version
main branch
GPU
Apple
GPU info
No response
CPU
Apple
Other software
No response

I think this should be covered by https://github.com/ollama/ollama/pull/3122

I'll pull the changes and test it out. At a first glance I don't know if this solves the empty path for the dynamic libs map but I'll verify.

I think this should be covered by https://github.com/ollama/ollama/pull/3122

I'll pull the changes and test it out. At a first glance I don't know if this solves the empty path for the dynamic libs map but I'll verify.

If you're still seeing problems related to tmpdir cleanup, let us know.


⚠ Processors has degraded performance

In 3485a8b, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 92 ms

Resolved: Processors performance has improved in 95faacd.


run cloudera-manager server config Play on the CM host (fixes Tower not having access to CM port)

1 of the many fixes we required  to get the cloudera.cluster (CDP "private cloud") deployment working, run from an Ansible Tower host w/out open ports to the cluster nodes (except for SSH of course).
I wonder what was the reason to have this run on "localhost" in the 1. place ?
Alternatively, a more "generic" solution could be using following idiom  used in some places:
hosts: "{{ groups.cloudera_manager[0] if 'cloudera_manager' in groups else 'localhost' }}"

And if that PLAY really needs to differentiate to run some tasks on localhost .. maybe better change those tasks to use delegate_to: localhost ?
More infos:
The 1. task which failed for us , ran from Tower was: roles/cloudera_manager/admin_password/check/tasks/main.yml

name: Check the default Cloudera Manager admin password
At first I was wondering, why that task did not also use following delegate_to (as the prev. task in that file):

> delegate_to: "{{ groups.cloudera_manager[0] if 'cloudera_manager' in groups else 'localhost' }}"

(and after fixing that task  like this, we encountered more cm_api calls in that PLAY, that's why I tried to run the whole PLAY on the CM host, and it worked nicely!)

Hi, @lhoss, thanks for your contribution. Could you please ensure your work is signed? Thanks!


New Rule: Attachment: RFC822 with suspicious credential theft language with links from untrusted sender

/update-test-rules


New connectors request flow in cards

Related issue
https://github.com/CartoDB/cartodb/issues/15515

Oops!! I forgot to update the backend tests. I'll do it on Monday 👍