Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - @XSStringManolo

#1111
Desarrollo Web / Re: Implementación de let en ES5?
17 Diciembre 2019, 05:08 AM
Cita de: MinusFour en 17 Diciembre 2019, 02:05 AM
No lo hereda porque el contexto del objeto de una llamada se determina en la invocación de la función (en el caso de funciones regulares). Solo en el caso de funciones flecha es que el contexto del objeto se "hereda" (hay una explicación un poco más larga).

El contexto del objeto es básicamente lo que va detrás de la función o metodo.

Código (javascript) [Seleccionar]

  obj.fn();
// ^
//contexto


Código (javascript) [Seleccionar]

       fn();
//^
//no hay contexto
//a menos que sea una función resultante de bind
//misma situación para IIFEs


Código (javascript) [Seleccionar]

  fn.call(obj);
//         ^
//         contexto

Ahhh vale! Pensé que era por otra cosa xD.
#1112
IDENTIFICADOR:
subscribe: Es la key, identificador o referencia de una propiedad o metodo que pertence a un objeto.
Esto se entiende muy fácil con un objeto simple:
Código (javascript) [Seleccionar]
var persona =
{
nombre: "desconocido" ,
nombrar: function(nombre)
{ this.nombre = nombre; } ,
edad: 0
};

alert(persona["nombre"]);
persona.nombrar("Miguel");
alert(persona.nombre);
Es igual que el índice de un array, pero en vez de utilizar un número, se usan palabras. También se puede usar el operador punto. En el ejemplo tienes ambos para acceder a nombre.

Como ves en mi ejemplo, nombrar sirve para dar nombre. En los objetos se suelen utilizar verbos como identificadores de las funciones/metodos. Y se usan nombres como identificadores para valores/propiedades.

subscribe se interpreta que va a ser una referencia de un metodo que servirá para subscribir. Teniendo por identificador del parámetro "callback", y entendiendo como funciona Long Polling se puede entender que es el método encargado de que una vez se reciba una petición del servidor, se vuelva a enviar otra petición al servidor para quedarse en modo escucha a la espera de que el servidor responda.



OPERADOR FLECHA
Es la sintaxis de una función con el operador flecha. Se introdujeron en EcmaScript6. Son funciones normales, como las de siempre, con pequeñas variaciones en el comportmiento, tipo de objetos disponibles, a que hace referencia this... Lo que más cambia a primera vista es la sintaxis.

Función Declarada sumar
Código (javascript) [Seleccionar]
function sumar ( sum1, sum2 ) { return sum1 + sum2; }

var resultado = sumar(5, 6); //11


Función Declarada Operador Flecha sumar
Código (javascript) [Seleccionar]
var sumar = ( sum1, sum2 ) => sum1 + sum2;

var resultado = sumar(5, 6); //11


Funcion Declarada saludar
Código (javascript) [Seleccionar]
function saludar(nombre) { alert("Hola " + nombre); }

Funcion Declarada Operador Flecha saludar
Código (javascript) [Seleccionar]
saludar = nombre => alert("Hola " + nombre);

Cita de: Las declaraciones de funciones normales son:

function identificador (parámetro1, parámetro2) { expresion1; expresion2; return valor; }


Cita de: Y el operador flecha:

() parámetro1 => expresión; {}


Color Rojo representa que es obligatorio.
Color Azul representa que se puede subtituir por el color Rojo anterior.
Color Verde es opcional.

Hay muchas más formas de crear funciones y otro tipos de funciones distintas. Pero no vienen al caso.



RESTO CÓDIGO
const pollUserEvents = () => { expresion; expresion2; ... }

const es una forma de definir una variable con valor fijo.

pollUserEvents es el identificador de la funcion.

() la función no recibe parámetros.

{ } corchetes que delimitan el cuerpo de la función.

Lo siguiente, mirando en su totalidad sin centrarnos en nada en específico, es un objeto como el objeto persona que te hice antes. Es un objeto que sirve para indicar las propiedades y métodos que queremos que tenga el metodo .ajax()
A simple vista puede liarte la sintaxis porque es un objeto grande, pero es lo mismo que hacer:
function mostrar (array)
{
alert(array);
}

mostrar( [1, 2, 3, 4, 5] );

Es decir, al método ajax() se le pasa como parámetro un objeto.

Por ejemplo el objeto persona
Código (javascript) [Seleccionar]
var persona =
{
nombre: "desconocido" ,
nombrar: function(nombre)
{ this.nombre = nombre; } ,
edad: 0
};
quedaría así dentro de $.ajax()
Código (javascript) [Seleccionar]
$.ajax({
nombre: "desconocido" ,
nombrar: function(nombre)
{ this.nombre = nombre; } ,
edad: 0
})



success: (data) => { }
success es llamada cuando se recive la respuesta. success es una referencia a una función flecha que utiliza data(lo que se recibe del server) como parámetro y ejecuta las expresiones que contiene en el cuerpo de la función/metodo.

callback(data)
El comentario de //process the data va dirigido a ti. Te dice que hagas lo que quieras con la respuesta del servidor. El callback lo que hace es esperar a que se ejecute tu expresión.


complete: () => { }
Cuando se complete de procesar la respuesta independientemente de que tenga errores o no, se ejecutan las expresiones que contiene entre corchetes.

pollUserEvents();
La llamada está dentro del cuerpo de complete cuando se complete una respuesta, se llamara al método.

timeout: 30000
Este es el tiempo máximo que se espera por una respuesta antes de cerrarla. Casi siempre se suelen indicar en milisegundos. Es decir que si yo te mando Hola! A tu servidor, y no recibo respuesta, al pasar 30 segundos, se cierra la conexión.

})
Se cierra la definición del objeto. Se cierra la lista de de parámetros de $.ajax()

} Se cierra la definición del método pollUserEvents

Se llama al método pollUserEvents()
de forma recursiva para establecer un bucle infinito de escuchas al servidor, en el cual el cliente dice al servidor:
Chrome: Hola, espero tu respuesta.

Apache: Hola.

Apache: Qué tal todo?

Lo que hace el bucle nada más recibir "Hola" desde el servidor, es enviar otra petición al servidor para poder recibir "Qué tal todo?"

Es una forma de tener una conexión pseudopermanente para applicaciones que no sepan cuando el servidor les va a responder exactamente pero se esperen varias respuestas en espacios de tiempo cortos.

Aquí tienes varios métodos de $.ajax()

Aquí tienes las distintas versiones de javascript. La ES5 y la ES6 son las imprescindibles. ES5 la soportan 99% de los navegadores de hoy en día. ES6 así a ojo rondará un 95+% de soporte. En ES6 se introducen cambios muy importantes y que cada vez los verás de forma mucho más y más frecuente.
#1113
Desarrollo Web / Re: Implementación de let en ES5?
17 Diciembre 2019, 01:51 AM
No hereda el contexto porque se evalua antes? Se evalua de dentro hacia fuera?

Muchas gracias! Se ve my interesante!
#1114
Desarrollo Web / Re: Implementación de let en ES5?
17 Diciembre 2019, 00:25 AM
A esta pattern se le llama proxied? .call es el método interno [[call]] y al utilizar this se referencia a la función anónima no? Cleaver!
La vi anteriormente para sobrescribir window.alert, andaba buscando como sobrescribirla para substituirla por un componente.

Qué forma más curiosa la de babel. Parece que optimiza la cantidad de código en vez de la performnce no?

Muchas gracias!
#1115
Desarrollo Web / Implementación de let en ES5?
16 Diciembre 2019, 17:22 PM
Probé con Babel y la versión que me crea es usando variables con la barra baja para declarar dos variables distintas e "indicar" que una de ellas es privada. Pero sigue siendo accesible públicamente. No debería utilizar un WeakMap?

Si conoceis la implementación de let estaría genial para poder utilizarla en ES5.


ES6+
Código (javascript) [Seleccionar]
for(let x = 0; x < 10; ++x)
{
alert(x);
}
let x = 12;
alert(x);


Versión ES5 generada por Babel
Código (javascript) [Seleccionar]
for(var _x = 0; _x < 10; ++_x)
{
alert(_x);
}
var x = 12;
alert(x);
#1116
Foro Libre / Re: ¿que es este sitio?
16 Diciembre 2019, 16:01 PM
Cita de: #!drvy en 16 Diciembre 2019, 00:19 AM

Yo eso lo descartaria más que nada porque genera un texto aleatorio por cada path que le des, incluso aunque ese path no este indexeado ni aparezca en internet.


http://www.test.cocon.se/@?0!,5^34FreeCellnetdrvyengellexelhacker1234patata456sushi999
http://www.test.cocon.se/elhackerFreeCellnet@?0!,5^34drvyengellex98765tomate432maki1337

Siglo pensando que se trata de una generación de carateres aleatoria que usa como seed el path que se le da. Explicaria perfectamente el tema del SEO.

Saludos
Para que sirve generar carcateres aleatorios con respecto a SEO? No conozco mucho del tema.
#1117
Redes / Re: Duda facil con Windows Server 2012
15 Diciembre 2019, 08:32 AM
Hay incongruencias en la descripción del ejercicio.

Te pide un dominio secundario, y le añade un punto. Es decir, ya no es un dominio secundario, si no un subdominio de un dominio secundario. Tampoco veo que precise si es el subdominio del dominio secundario o el dominio secundario el que debe apuntar. Tampoco precisa si debe apuntar al otro dominio, o al server directamente.

Qué se supone que es un "bosque anterior". Prácticamente nadie usa "bosque", ni siquiera es necesario usar "árbol" habiendo términos más precisos y descriptivos. Por deducción la palabra bosque es un conjunto de árboles no? De donde sale un "bosque" a partir de tan solo un dominio creado anteriormente? Hay que ocupar el rango de la subred? O solo la IP indicada? Y de ser ese el caso, como debes apuntar los dominios? Desde donde deben ser accesibes? Deben ser ips reservadas en un dhcp?


Si ese es el enunciado del ejercicio, nadie aprovaría no? Ponerle una reclamación. Y si no os hacen caso, vais al defensor del pueblo o lo mediatizais por las redes. Hay cada papanatas suelto...
#1118
Si sabes programar puedes hacerte un addblocker tú. Ya sea en Java capturando las cabeceras. Usando un Servidor de proxy. Creando una extensión. O hasta una web frontend con javascript. O convinarlo todo xD. Tienes listas por la web bastante buenas. https://easylist.to/
#1119
Foro Libre / Re: ¿que es este sitio?
15 Diciembre 2019, 05:42 AM
Aquí lo que descubrí yo.

Tiene un robots en un subdominio:
http://1.test.cocon.se/robots.txt utiliza la cabecera HTTP X-Robots-Tag

Sistema: Unix
Servidor Web: Apache 2.4.41
Version PHP: PHP/7.3.12
IP Proxy: 163.172.177.16
LocalHost: 8118
Hosting Compartido: Scaleway/Online.net
Tiene el PHP info accesible.http://1.test.cocon.se/phpinfo.php

Tiene un valor no válido haciendo petición a http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js y la versión tiene vulnerabilidades.
Cache-Control: public, max-age=31536000, stale-while-revalidate=2592000

Entre otras, falta X-Content-Type-Options.

Tiene HTTP TRACE activo. XST

El fuente tiene comentarios en francés y links a stackoverflow y otro sitio en francés.

cocon es una palabra en francés.

En el robots le da permiso a cocon.se crawler asique ya sabes lo que hace.

En concreto diría que el creador es:
https://mobile.twitter.com/coconsemantique

Su sitio web:
http://cocon.se/

Parece que crawlea un montón de sitios y hace visualizaciones. Todo el texto sin sentido que ves debe ser el contenido crawleado al que le aplicó un algoritmo de compresión. Si utilizas un dork al sitio en Google con site:test.cocon.se puedes ver que tiene mucho contenido en la web, asique es lógico que ande a hacer movidas de compresión. Igual ni lo cifra. Si buscas algoritmos de compresión por ahí igual consigues algo. No parece muy cuidadoso. También comentan algo de seo. Solo es hacer hemeroteca del Twitter, pero ni por las ganas de darle patrá'

Versión en Inglés: http://sem-eye.com/contact

Parece algo muy tocho e interesante.
#1120
Foro Libre / Re: ¿que es este sitio?
15 Diciembre 2019, 02:06 AM
Cita de: FreeCellnet en 15 Diciembre 2019, 01:04 AM
Tengo curiosidad, y de momento no he logrado saber que es exactamente.

http://www.test.cocon.se/
Tener cuidado al entrar, no tiene buena pinta, o es malware, una base de datos ofuscada, o algo así. Lo estoy observando de forma segura.