memory – Retrieving an item after python del

I have heard that deleting something with the del keyword does not delete it instantly, which can cause security issues if an attacker is able to retrieve it. What happens exactly after you use this keyword ? Where does it go (I assume somewhere in the garbage collector) and how can I see it ? More importantly, how should one proceed in order to retrieve it ?

menu – Regresar al inicio del programa después de un “case” cumplido, en c#

¡Hola!, tengo un problema, y, si alguien me pudiera ayudar con el siguiente fragmento de código.
Después de que se cumplen las diferentes opciones del SWITCH, para un menu, ¿Como le hago para regresar al menu principal?.

namespace Correcion_arreglo_menu_clases_Poo
{
class Menu
{

    public void Aomenu_principal()
    {
        //imprime bantalla negra...
        string a = Console.ReadLine(); //para comenzar presione cualquier tecla.
        Console.Clear();

        
        Datos operador = new Datos(); //llamamos nuestra clase
        byte opcion; //variable para nestra selecion
        operador.Aomenu_01(); //imprime el mensaje de nuestra clase.
        opcion = Convert.ToByte(Console.ReadLine()); //almacena nuestra selecion

        Operaciones sa = new Operaciones();
        Arreglo array = new Arreglo();

        do
        {
            //operador.Aop_2(); //prueba
            switch (opcion)
            {
                case 1: operador.Aomenu_02(); //ingresar y almacena datos..
                    break;
                case 2: array.Empleado();
                    break;
                case 3:array.Empleado();
                    break;
                case 4:
                    Console.WriteLine("-saliiendo");
                    break;
                default: Console.WriteLine(" No exitte el numero ingresea en nuestro parametro");
                    break;
            }        

        } while (opcion >3);

    }
    
}

}

javascript – Optimizar y duda con iteración del bucle for

Ahora mismo tengo un array de 6 objetos, los cuales son estos:

0: Object { hp: 9999, atk: 255, def: 255, … }
1: Object { hp: 9999, atk: 255, def: 255, … }
2: Object { hp: 9999, atk: 255, def: 255, … }
3: Object { hp: 800000, atk: 180, def: 200, … }
4: Object { hp: 180000, atk: 120, def: 100, … }
5: Object { hp: 180000, atk: 120, def: 100, … }
length: 6

Para iterarlos utilizo un bucle for:

function selectTurn(arg){

    for(let i=0;i<arg.length;i++){

        var turn = setInterval(function(i){
            arg(i).vel++;

            document.querySelectorAll('.turn-rest')(i).style.width=arg(i).vel+'px';
            if(arg(0).vel == 100){
                arg(0).vel = 0;
                document.querySelectorAll('.turn-rest')(0).style.width='0px';
            }
            if(arg(1).vel == 70){
                arg(1).vel = 0;
                document.querySelectorAll('.turn-rest')(1).style.width='0px';
            }
            if(arg(2).vel == 70){
                arg(2).vel = 0;
                document.querySelectorAll('.turn-rest')(2).style.width='0px';
            }
            if(arg(3).vel == 65){
                arg(3).vel = 0;
                document.querySelectorAll('.turn-rest')(3).style.width='0px';
            }
            if(arg(4).vel == 40){
                arg(4).vel = 0;
                document.querySelectorAll('.turn-rest')(4).style.width='0px';
            }
            if(arg(5).vel == 50){
                arg(5).vel = 0;
                document.querySelectorAll('.turn-rest')(5).style.width='0px';
            }
        },100, i);
    }
}

Lo primero y lo que más atención me llama es:

¿Por qué narices se desordena el array a su gusto?
Si antes llevaba el orden de, los 3 primeros objetos tienen 9999 y los tres siguientes tienen 800000 y 180000, cómo es posible que cambie el orden a este:

0: Object { hp: 800000, atk: 180, def: 200, … }
1: Object { hp: 180000, atk: 120, def: 100, … }
2: Object { hp: 180000, atk: 120, def: 100, … }
3: Object { hp: 9999, atk: 255, def: 255, … }
4: Object { hp: 9999, atk: 255, def: 255, … }
5: Object { hp: 9999, atk: 255, def: 255, … }
length: 6

Entendería que lo ordenara al revés, y eso no estaría mal del todo. ¿Pero tan aleatoriamente? (Para aclarar, los de hp 9999 están entremezclados entre si también).

Lo segundo es:

Entiendo cómo trabaja el bucle for, pero no se me ocurre ninguna idea para optimizar todas esos if.

¿Alguna sugerencia?

linux – Migrar página Laravel con datos en BBDD a otra carpeta del servidor

Me gustaría saber que hay que tener en cuanta si quiero migrar mi web en Laravel ( que esta actualmente en desarrollo publicada en un servidor)

La cosa es que yo lo tengo publicado en un dominio ( carpeta y) y lo quiero cambiar y subir en otro dominio ( carpeta y)

Esas carpetas estan en diferentes paths, y no sirve con redireccionar a otra carpeta.

Necesitaría coger la carpeta laravel y moverla a otro sitio, mi pregunta es Cúal es la forma más eficiente y eficaz para no perder ningún dato ni tener conflictos?

Gracias.

Wysiwyg text editors: Pressing “Del” next to an empty bullet point removes said bullet point?

Each WYSIWYG text editor I can recall ever using (MS Word, Pages, Notes on Mac & iOS, web pages, etc.) exhibit the following behaviour. Suppose I’m editing the following text:

• Item one
• Item two
• |
Item three

Where | represents the current position of my caret.

If I press “Del” at this point, the following happens:

• Item one
• Item two
Item three

Isn’t the above completely counter to what one would intuitively expect to happen?

(So, what I would always do instead is the following: type a, press Del, press Backspace, which is really annoying).

Why, oh why does this action remove the bullet point in each and every text editor I have ever used?! This has infuriated me for literally decades of my life, and still does 😭!

No devuelve el valor del IDENTITY proveniente de un insert en Stored Procedure en Windows Forms

Tengo un procedimiento almacenado que graba encabezado y detalle de una factura desde Windows Forms en C#. Lo que necesito es poder obtener el enc_id (que es IDENTITY) que ya lo logré asignar al detalle en el procedimiento almacenado y que pongo OUTPUT en el Windows Forms c# para usarlo en la generación de la factura. He aquí mi código:

CREATE OR ALTER procedure (dbo).(spr_guarda_factura)
 @enc_fecha_grabado             DateTime
,@enc_fecha_docto               DateTime
,@enc_numero_autorizacion       varchar(64)
,@enc_serie_docto               varchar(32)
,@enc_numero_docto              varchar(32)
,@cli_id                        int
,@enc_nombres_cliente           varchar(128)
,@enc_apellidos_cliente         varchar(128)
,@cli_nit                       varchar(16)
,@tdo_id                        int
,@pve_id                        int
,@enc_fecha_primer_pago         datetime
,@enc_monto_enganche            numeric(12,2)
,@enc_numero_cuotas             int
,@enc_monto_total               numeric(12,2)
,@enc_valor_descuento           numeric(13,2)
,@enc_direccion_cliente         varchar(256)
,@detalle                       factura_det_type READONLY
,@enc_id                        int OUTPUT

El último parámetro que pongo es el @enc_id int OUTPUT-

Luego inserto encabezado

BEGIN
DECLARE @enc_xml                xml

    -- Inserta encabezado de factura
    INSERT INTO inv_documento_enc
        ( enc_fecha_grabado
         ,enc_fecha_docto
         ,enc_numero_autorizacion
         ,enc_serie_docto
         ,enc_numero_docto
         ,cli_id
         ,enc_nombres_cliente
         ,enc_apellidos_cliente
         ,cli_nit
         ,tdo_id
         ,pve_id
         ,enc_fecha_primer_pago
         ,enc_monto_enganche
         ,enc_numero_cuotas
         ,enc_monto_total
         ,enc_valor_descuento
         ,enc_direccion_cliente
        )
        VALUES
        (
          @enc_fecha_grabado
         ,@enc_fecha_docto
         ,@enc_numero_autorizacion
         ,@enc_serie_docto
         ,@enc_numero_docto
         ,@cli_id
         ,@enc_nombres_cliente
         ,@enc_apellidos_cliente
         ,@cli_nit
         ,@tdo_id
         ,@pve_id
         ,@enc_fecha_primer_pago
         ,@enc_monto_enganche
         ,@enc_numero_cuotas
         ,@enc_monto_total
         ,@enc_valor_descuento
         ,@enc_direccion_cliente
        );

Obtengo el valor del IDENTITY del incabezado

    SET @enc_id = SCOPE_IDENTITY();

Y con ese valor inserto el detalle, pero ya tengo el valor del encabezado que necesito en Windows Forms c#

Este es mi código en Windows Forms C# con que inserto

  using (SqlConnection connection = new SqlConnection(connectionString))
            {
                SqlCommand command = new SqlCommand("spr_guarda_factura", connection);
                var parametroLista = new SqlParameter("@detalle", SqlDbType.Structured);
                SqlParameter p_enc_id = new SqlParameter("@enc_id", SqlDbType.Int);
                parametroLista.TypeName = "factura_det_type";
                parametroLista.Value = dt;
                p_enc_id.Direction = ParameterDirection.Output;
                command.CommandType = System.Data.CommandType.StoredProcedure;
                command.Parameters.AddWithValue("@enc_fecha_grabado", enc_fecha_grabado);
                command.Parameters.AddWithValue("@enc_fecha_docto", enc_fecha_docto);
                command.Parameters.AddWithValue("@enc_numero_autorizacion", enc_numero_autorizacion);
                command.Parameters.AddWithValue("@enc_serie_docto", enc_serie_docto);
                command.Parameters.AddWithValue("@enc_numero_docto", enc_numero_docto);
                command.Parameters.AddWithValue("@cli_id", cli_id);
                command.Parameters.AddWithValue("@enc_nombres_cliente", enc_nombres_cliente);
                command.Parameters.AddWithValue("@enc_apellidos_cliente", enc_apellidos_cliente);
                command.Parameters.AddWithValue("@cli_nit", cli_nit);
                command.Parameters.AddWithValue("@tdo_id", tdo_id);
                command.Parameters.AddWithValue("@pve_id", pve_id);
                command.Parameters.AddWithValue("@enc_fecha_primer_pago", enc_fecha_primer_pago);
                command.Parameters.AddWithValue("@enc_monto_enganche", enc_monto_enganche);
                command.Parameters.AddWithValue("@enc_numero_cuotas", enc_numero_cuotas);
                command.Parameters.AddWithValue("@enc_monto_total", enc_monto_total);
                command.Parameters.AddWithValue("@enc_valor_descuento", enc_valor_descuento);
                command.Parameters.AddWithValue("@enc_direccion_cliente", enc_direccion_cliente);
                command.Parameters.Add(parametroLista);

                command.Parameters.Add(new SqlParameter("@enc_id", SqlDbType.VarChar));

                command.Parameters("@enc_id").Direction = ParameterDirection.Output;

                command.Parameters("@enc_id").Value = "";

                connection.Open();
                command.ExecuteNonQuery();

                string v_enc_id = (string)p_enc_id.Value;
                string valor = command.Parameters("@enc_id").Value.ToString();
                
                
                connection.Close();
            }

Lo debuguie y no sé como recuperar el valor y como usarlo en el formulario principal.

Gracias por su ayuda,

¿Con C# se puede saber cuando pulsas el botón de una bandeja del lector?

Tengo un grabador de DVD que si pulso su botón abre y cierra la bandeja.

He hecho dos cosas. Un formulario Windows con C# que abre y cierra la bandeja del disco y que detecta cuando hay un disco en su interior o no.

El problema está cuando abro y cierro la bandeja directamente del botón físico de la unidad. Visual C# no detecta cuando esto ocurre. Si controlas la bandeja de disco desde C#, si funciona de maravilla.

Dejo un ejemplo del Windwos Form con .Net 5.0.
introducir la descripción de la imagen aquí

Código C#:

    using System;
using System.Management; // No olvidar y añadir en Dependencias, NuGet.
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;

namespace Lector_discos_Net_5_01_cs
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        // Variable.
        public static string datos = "";
        public static string datosId = "";

        (DllImport("winmm.dll"))
        public static extern Int32 mciSendString(string lpstrCommand, 
            StringBuilder lpstrReturnString,
            int uReturnLength, 
            IntPtr hwndCallback);

        StringBuilder rt = new StringBuilder(127); 

        private void button_Abrir_Click(object sender, EventArgs e)
        {
            label_Mensaje.Text = "Abriendo...";
            Application.DoEvents();
            mciSendString("set CDAudio!" + comboBox_Unidad.Text + " door open", rt, 127, IntPtr.Zero);

            /* 
               Si quieres por ejemplo elegir la unidad que quieras, en este caso la H, se le asigana !H
               como indica abajo. En vez de CDAudio, CDAudio!H.
               mciSendString("set CDAudio!H door open", rt, 127, IntPtr.Zero);
            */

            label_Mensaje.Text = "Abierto.";
            discoSiNo();
        }

        private void button_Cerrar_Click(object sender, EventArgs e)
        {
            label_Mensaje.Text = "Cerrando...";
            Application.DoEvents();
            mciSendString("set CDAudio door closed", rt, 127, IntPtr.Zero);
            label_Mensaje.Text = "Cerrado.";
            discoSiNo();
        }

        // Lectura de dispositivos.
        void ConsigueComponentes(string hwclass, string syntax)
        {
            ManagementObjectSearcher mos = new ManagementObjectSearcher("root\CIMV2", "SELECT * FROM " + hwclass);
            foreach (ManagementObject mj in mos.Get())
            {
                if (Convert.ToString(mj(syntax)) != "")
                {
                    datos = Convert.ToString(mj(syntax));
                }
            }
        }

        // Comprobar si hay disco en el lector.
        void discoSiNo()
        {
            // Disco en la unidad del lector.
            ConsigueComponentes("Win32_CDROMDrive", "MediaLoaded");

            // ¿Disco en el lector?
            if (datos == "True")
            {
                label_Mensaje_disco.Text = "Disco en el lector: Sí.";
            }

            else
            {
                label_Mensaje_disco.Text = "Disco en el lector: No.";
            }
            datos = "";
            
        }

        private void Form1_Load(object sender, EventArgs e)
        {
                // Nombre de la unidad.
                ConsigueComponentes("Win32_CDROMDrive", "Id");

                if (datos == "F:")
                {
                    comboBox_Unidad.Text = datos;
                    comboBox_Unidad.Items.Add(datos);
                }
        }
    }
}

¿Alguna idea?

Que tengan buen día.

laravel 8. Una ruta carga una vista en blanco (solo carga el navbar del template..)

llevo un rato mirando un problema que tengo con una ruta y es que tengo el admincontroller@usersList para que cargue una vista pero la carga en blanco.

admincontroller

<?php

namespace AppHttpControllers;

use AppModelsUser;
use IlluminateHttpRequest;

class AdminController extends Controller
{

    /**
     * @param Request $request
     * Lista todos los usuarios, para tener una vista general de los usuarios actuales de la web
     */
    public function usersList(Request $request){
//        $users = User::with(('roles'))->get();
//        dd($users);
//        dd('hola');
        return view('admin.all_users');
    }
}

a ese controlador llega, de hecho los dd´s que de ven comentados si se cargan. ..

rutas

Route::group(('middleware' => 'auth'), function () {
    Route::get('/home', (AppHttpControllersHomeController::class, 'index'))->name('home');

    /**
     * Rutas Admins
     */
    Route::group(('prefix'=>'admin','as'=>'admin.'),function (){
       Route::get('users_list',(AdminController::class,'usersList'))->name('usersList');
    });
});

vista admin.usersList

@extends('layouts.app')
@section('background-image','storage/system/Wallpaper/Desktop/Hunt-Wallpaper-9-1920x1080.jpg')
@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <p>hola</p>
        </div>
    </div>
</div>
@endsection

Que extiende de la plantilla app:

<!doctype html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- CSRF Token -->
    <meta name="csrf-token" content="{{ csrf_token() }}">

    <title>{{ config('app.name', 'Laravel') }}</title>



    <!-- Fonts -->
    <link rel="dns-prefetch" href="//fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">

    <!-- Styles -->
    <link href="http://es.stackoverflow.com/{{ asset("css/app.css') }}" rel="stylesheet">
    <link href="http://es.stackoverflow.com/{{ asset("css/custom.css') }}" rel="stylesheet">

</head>
<style>
    body{
        background: url(@yield('background-image')) no-repeat center center fixed;
        -webkit-background-size: cover;
        -moz-background-size: cover;
        -o-background-size: cover;
        background-size: cover;
    }
</style>
@yield('css')
<body>
    <div id="app">
        <nav class="navbar navbar-expand-md navbar-dark bg-primary shadow-sm">
            <div class="container">
                <a class="navbar-brand" href="{{ url('/') }}">
                    {{ config('app.name', 'Laravel') }}
                </a>
                <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="{{ __('Toggle navigation') }}">
                    <span class="navbar-toggler-icon"></span>
                </button>

                <div class="collapse navbar-collapse" id="nav_bar">
                    <!-- Left Side Of Navbar -->
                    <ul class="navbar-nav mr-auto">
                        <li class="nav-item">
                            <a class="nav-link {{Route::is('home') ? 'active font-weight-bold' : ''}}"
                               href="{{Route::is('home') ? '#' : route('home')}}"
                            >
                                Inicio
                            </a>
                        </li>

                        @role('admin')
                        <li class="nav-item dropdown show bg-danger rounded" id="admin_menu">
                            <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="true">
                                Admin
                            </a>
                            <div class="dropdown-menu bg-dark" id="">
                                <a class="nav-link {{Route::is('admin.usersList') ? 'active font-weight-bold' : ''}}"
                                   href="{{Route::is('admin.usersList') ? '#' : route('admin.usersList')}}"
                                >
                                    Lista de usuarios
                                </a>
                            </div>
                        </li>
                        @endrole

                    </ul>

                    <!-- Right Side Of Navbar -->
                    <ul class="navbar-nav ml-auto">
                        <!-- Authentication Links -->
                        @guest
                            @if (Route::has('login'))
                                <li class="nav-item">
                                    <a class="nav-link {{ Route::is('login') ? 'active font-weight-bold' : '' }}" href="{{ route('login') }}">{{ __('Login') }}</a>
                                </li>
                            @endif

                            @if (Route::has('register'))
                                <li class="nav-item">
                                    <a class="nav-link {{ Route::is('register') ? 'active font-weight-bold' : '' }}" href="{{ route('register') }}">{{ __('Register') }}</a>
                                </li>
                            @endif
                        @else
                            <li class="nav-item dropdown">
                                <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
                                    {{ Auth::user()->name }}
                                </a>

                                <div id="nav_bar" class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
                                    <a class="dropdown-item" href="{{ route('logout') }}"
                                       onclick="event.preventDefault();
                                                     document.getElementById('logout-form').submit();">
                                        {{ __('Logout') }}
                                    </a>

                                    <form id="logout-form" action="{{ route('logout') }}" method="POST" class="d-none">
                                        @csrf
                                    </form>
                                </div>
                            </li>
                        @endguest
                    </ul>
                </div>
            </div>
        </nav>

        <main class="py-4">
            @yield('content')
        </main>
    </div>

    <!-- Scripts -->
    <script src="https://es.stackoverflow.com/{{ asset("js/app.js') }}"></script>
</body>
</html>

Lsa otras vistas cargan bien pero no se que le pasa a esa vista. ¿Alguna sugerencia?

android – Cambiar el color del fondo de la Main Activity des de un AlertDialog

public class DialogListDemo extends DialogFragment {

View view;

@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {

    // Using the builder class for constructing AlertDialogs
    AlertDialog.Builder builder = new AlertDialog.Builder(Objects.requireNonNull(getActivity()));
    final LayoutInflater inflater = getActivity().getLayoutInflater();
    view = inflater.inflate(R.layout.activity_main, null);
    // Designing the list dialog
    builder.setTitle("Pick a color")
            .setItems(new String(){"Red", "Blue", "Yellow"}, new DialogInterface.OnClickListener() {
                @SuppressLint("InflateParams")
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // Wich contains the index of the selected item
                    if (which == 0) view.setBackgroundColor(Color.RED);
                    else if (which == 1) view.setBackgroundColor(Color.BLUE);
                    else if (which == 2) view.setBackgroundColor(Color.YELLOW);
                }
            });
    return builder.create();
}

}

Esta es mi clase. En la Main tengo un botón que muestra este diálogo.
En teoria debugeando veo que accedo al layout pero no me cambia el color.
Alguien sabe porqué?

ag.algebraic geometry – Singular del Pezzo surfaces and degeneration of root systems

Let $S$ be a smooth del Pezzo surface of degree $d$ and $K_S^*$ the anticanonical class. It is well known that the set of classes

$$R(S)={alphain H^2(S,mathbb Z)|alpha^2=-2,alphacdot K_S^*=0},$$

together with intersection pairing is isomorphic to a root system $R_d$ of rank $9-d$, where $R_d$ from $d=1$ to $6$ is $E_8,E_7,E_6,D_5,A_4,A_2times A_1$. Moreover, Each root can be written as $(L_1)-(L_2)$, where $L_1,L_2$ are two disjoint lines on $S$.

I’m particularly interested in the $d=3$ case, where $S$ is a cubic surface, and the corresponding root system $E_6$ has 72 roots. I’d like to know

Question 1: Is there a notion of the root system on singular del Pezzo surfaces? Is there any related reference?

Now let $S$ be a normal del Pezzo surface of degree $d$ with at worst ADE singularities. Then there is a minimal resolution $pi:S’to S$, where $S’$ is a weak del Pezzo surface, which arises blowing up $9-d$ bubble points on $mathbb P^2$. Moreover, $pi$ is given by anticanonical map $|K_{S’}|$ and contracts all effective $(-2)$ curves. Since $S’$ is deformation equivalent to a smooth del Pezzo surface, the root system of $S’$ is also isomorphic to $R_d$. According to Dolgachev’s book, section 8.4 and 9.2.3, and also see Martin Bright’s answer, the set of effective $(-2)$ curves on $S’$ correspond to a sub root system $R_esubseteq R_d$. Such sub-root systems are classified. Moreover, the rank $r=text{rank}(R_e)$ coincides with the number of the $(-2)$-effective curves.

To me, the roots on singular $S$ should be a degeneration of the root system $R_d$. It should be certain “complement” of the sub-root system $R_e$ of the $(-2)$ curves occur in the resolution. However, the orthogonal complement does not seems to the correct notion, since strict transform of a line through the singular point will have nontrivial intersection with the exceptional curves, and there should be “roots” as differences of lines through the singularity.

The notion of root system $R(S)$ on singular $S$ that I have in mind is a quotient:

Definition 1: Let $R(S)$ be the quotient set $R_d/R_e:=R_d/sim$, where the equivalence relation on $R_d$ is $r_1sim r_2$ iff $r_1-r_2in R_e$.

Such a quotient is just a set and does not have a root system structure in general. (Although the quotient seems to behave well for type $A$ root systems, so for $dge 5$ cases, the quotients correspond to the Dynkin diagram by removing the sub-Dynkin diagram corresponding to $R_e$).

For example, for a cubic surface with an $A_1$ singularity, $R(S)=E_6/A_1$ has 50 “roots”; for a quartic del Pezzo surface with an $A_1$ singularity, $R(S)=D_5/A_1$ has 26 “roots”. As far as I know, 50 and 26 are not the number of roots of any root systems (even reducible).

The reason for me to consider this quotient is that the class group $text{Cl}(S)$ arises as a surjection $text{Pic}(S’)twoheadrightarrow text{Cl}(S)$ with kernel generated by the set of effective $(-2)$ curves. However, I haven’t seen any reference ever discussed such quotient.

Question 2: Is there a Lie theory interpretation of the quotient in Definition 1?

Any suggestions and comments are welcome!