TARDÍGRADOS

Ciencia en español -ʟᴀ ʀᴀᴢóɴ ᴇsᴛá ᴀʜí ғᴜᴇʀᴀ-

Posts Tagged ‘código fuente’

JHS: Java Hypertext Script

Posted by Albert Zotkin on April 23, 2021

Hola amigo de Tardígrados . Me parecía injusto, que siendo NODE.js una plataforma de programación tan potente, con la utilización del lenguaje Javascript, no pudiera competir en igualdad de condiciones con el lenguaje PHP, en cuanto a la creación dinámica de paginas web se refiere.
Es habitual ver plantillas de páginas web donde aparecen secciones bien acotadas de código PHP. Eso quiere decir que esas páginas están destinadas a alojarse en un servidor, y cuando un cliente visita el servidor, el código PHP de la página se ejecuta antes de ser enviada. Pongamos un ejemplo sencillo. Sea la siguiente plantilla de página web:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php 
$name ="Albert";
?>
<html><head>
<style>
	body{
		background-color:#feffee;
		color:red;
		font-weight:bold;
		font-size:18pt;
 
	}
	#nombre{
		color:green;
		font-weight:bold;
		font-size:20pt;
	}
</style>	
</head>
<body >
<div><p>Mi nombre es: <span id="nombre"><?php echo $name; ?></span></p></div>
</body>
</html>
Esa sencilla página web se vería en el navegador del visitante (cliente) así:

Es decir, vemos que en el código fuente de la página antes de ser enviada por el servidor, existen dos áreas bien acotadas para código PHP. Esas áreas se definen con la clausula (tag) de apertura <?php y la de cierre ?>. Todo lo que está fuera de esas cláusulas es código html, u otras clases de códigos, como javascript del lado del cliente. Para que esa página, que es una mezcla de html y php, funcione, el archivo que se aloja en el servidor tiene que tener la extension php. En nuestro caso, el archivo se llama test-2.php. Si echamos un vistazo al código fuente de la pagina web que nos presenta el servidor, vemos que no aparece ningún código PHP. Sólo vemos código PHp ejecutado, es decir, todo lo que PHP escribió mediante la función echo o alguna otra función más de inprimir. Si el administrador de ese servidor, por la causa que sea, le pone la extensión html a ese archivo mixto, el visitante podrá ver el código php que hay escrito, y la página se presentará incorrectamente. Cambiemos la extensión a nuestro archivo test-2.php por test-2.html, y veamos qué es lo que aparece en nuestro navegador cuando visitamos ese servidor:

De momento, lo que vemos es que ya no aparece el nombre Albert, porque estaba definido dentro de la variable $name del código php. Si ahora echamos un vistado al código fuente de la página podremos ver todo ese código php, y eso es un grave error del webmaster de ese servidor. Porque, efectivamente, además de que ese código php no se ejecuta al ser requerida la página por el cliente, es enviado junto con todo el código restante, que si es código del lado del cliente. PHP es sencillamente código siempre del lado del servidor, el cliente nunca debería ver los scripts php al requerir páginas web dinámicas escritas en ese lenguaje. Con JavaScript existe aún más confusión, ya que existe JavaScript del lado del servidor, y JavaScript del lado del cliente-navegador (browser). Esencialmente, el paradigma de JavaScript del lado del servidor se llama NODE.js. Pero, con NODE.js podemos hacer no Ese entorno de programación multiplataforma posee pocas caracteristicas visuales, pues sólo es capaz de imprimir texto en la consola, y no está pensado para servir páginas web dinámicas como sí hace, y muy bien, PHP. Aunque sí puede hacerlo tambien muy bien, si el programador dedica algún tiempo a perfeccionar esas carateristicas.
Vamos a ver cómo podemos servir páginas dinámicas mediante NODE.js de la misma forma que lo hace PHP. Para ello lo primero que vamos a hacer es nuestro servidor de páginas web en NODE.js. Nuestrp servidor web lo pondremos a la escucha por el puerto 5774 de nuestra computadora, y a todo aquel que lo visite, le saludaremos desde nuestra página de inicio, que llamaremos index.jhs.
Evidentemente, para todo este proyecto, debemos tener instalado ya NODE.js en nuestra computadora, y funcionando correctamente.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
const Net = require('net');
const server = new Net.Server();
var port = 5774;
server.listen(port, function() {
	console.log('\x1b[32mNuestro\x1b[0m \x1b[92mSERVIDOR'+ 
	'LOCAL\x1b[0m \x1b[32ma la escucha por '+  
	'el PUERTO\x1b[0m \x1b[93m5774\x1b[0m');    	 
	});
	
server.on('connection', function(socket) {
	socket.on('data', function(chunk) {
		socket.write([
		'HTTP/1.1 200 OK',
		'Content-Type: text/html',
		'Accept-Ranges: bytes',
		'Connection: keep-alive',
		].join('\n') + '\n\n'
		);			
		var html = 
		"<!doctype html>\r\n"+
		'<html lang="es"><head>'+
		'<meta charset="utf-8">'+
		'<meta name="viewport" content='+
		'"width=device-width, initial-scale=1">'+
		'<meta http-equiv="content-type" content='+
		'text/html; charset=utf-8"></head>'+
		'<body><div align="center"><h1>FORMATEANDO '+
		'CARACTERES ESPECIALES DE UTF-8</h1>'+
		'<h2>áéíóúñü-°!"#$%&/()=?¡@-ÁÉÍÓÚÑÜ</h2>Esto '+
		'es una prueba con la ñ y los acentos ò, y,'+
		'<br>como sabrás, estás visitando nuestro<br>'+
		'<b>SERVIDOR LOCAL</b> por el <b>PUERTO '+
		'5774</b></div></body></html>';
    			  				   
		socket.write(html);
		socket.end();		
    });  
});
Guardamos este script en nuestro directorio de trabajo con el nombre server.js, y lo ejecutamos en nuestra consola (Windows MS-DOS, Linux, la que tengas), mediante la linea de comandos: node server.js, o simplemente con node server. Entonces, si todo ha ido bien, aparecerá en nuestra consola el log siguiente:
Ahora ya podemos abrir un navegador y visitar la página de nuestro servidor, cuya dirección será http://localhost:5774/. Este servidor sólo será accesible dentro de tu red local LAN, porque, presumiblemente, no habrás hecho un forward de ese puerto 5774 en tu router para tu conexión de internet. Y la pagina web que veremos en nuestro navegador será algo así:
Ahora ya estamos en disposición de mejorar nuestra pagina web, y hacer nuestro Java Hypertext Script . Pasemos a la siguiente página

Posted in informática | Tagged: , , , , , , , , , , , , , , , , , , , , , , , , , , | Leave a Comment »

Representación gráfica de funciones complejas

Posted by Albert Zotkin on March 7, 2014

Hace algún tiempo yo era un obseso de la programación informática. Me pasaba horas y horas programando miles de lineas de código de aplicaciones informáticas de todo tipo. Un día me pregunté si yo sería capaz de programar desde cero una aplicación que dibujara gráfica de funciones y de otros objetos matemáticos. La respuesta a aquella pregunta fue sí, y la aplicación que construí desde cero se llama PrimeGraph, y sirve para representar gráficamente funciones y otros objetos matemáticos. Para quien sienta curiosidad sobre el código fuente de PrimeGraph lo puede encontrar aqui.

Puedo ofrecer ahora varios ejemplos de representaciones gráficas de funciones complejas. Obviamente una representación gráfica estática de una función compleja no puede literalmente ser vista ya que toda función compleja transforma un número complejo z = (a, b) en otro distinto z’= (a’,b’). Es decir, se necesitaría al menos un espacio de cuatro dimensiones para poder visualizar tal gráfica funcional. Pero, es posible, mediante algunos trucos visualizar en un único plano (2D) tales gráficas de funciones complejas. Una de ella es mediante códigos de color en el plano. Puesto que una función de variable compleja transforma un número complejo en otro, Podemos ver cómo los puntos de un plano son re-ubicados con otras coordenadas si cada punto posee un color (pixel). Supongamos que el plano inicial (el que representa a la función identidad) posee el siguiente patrón de color:

0

Partiendo de esta plano coloreado inicial podemos representar funciones complejas, como he dicho, re-ubicando los píxeles en otras coordenadas según nos dicta la función compleja que se trata de representar. Veamos mas especificamente un ejemplo. Sea el siguiente polinomio de variable compleja

\displaystyle f(z)=(z-1-2i)(z+i)(z+2)^2

entonces según el patrón de color que he presentado arriba, la representación gráfica de esa función f(z) será:

1

Supongamos ahora que el plano inicial posee el siguiente patrón de color:

2

entonces una función compleja como cosecante de z, iterada 7 veces

\displaystyle f(z)=\csc(z)= \cfrac{1}{\sin (z)}

daría esta bonita y sorprendente representación gráfica:

csc-z

para los que no lo sepan, si iteramos 7 veces una función f(z) obtenemos otra función distinta:

\displaystyle f' (z)= f(f(f(f(f(f(f(z)))))))

veamos otro ejemplo de función compleja iterada usando el mismo patrón de color que antes. Ahora representaremos la función arcoseno de z iterada 2 veces

\displaystyle f(z)= \arcsin (z)

es decir tenemos la función iterada

\displaystyle f'(z)= \arcsin (\arcsin (z))

cuya respresentación gráfica en ese patrón de color será esta:
arcsin-z

P.D.: Para saber cómo se realizan las gráficas has de abrir el programa primegraph.exe y practicar con él. En él podrás encontrar ejemplos de gráficas para algunas funciones reales y complejas, y para otros objetos matemáticos. También incluí en la sección Ayuda un pequeño tutorial para saber cómo hacer los scripts. Si el programa primegraph.exe te funciona bien (no sé si funciona bien en todas las computadoras, y tampoco sé si ha quedado muy obsoleto, ya que ha pasado mucho tiempo desde la ultima compilación). Puedes acceder a primegraph.exe en mi repositorio drive, descargando el archivo comprimido primegraph_alpha_v1.1.zip. Una vez descargado ese zip, descomprime primegraph.exe en alguna carpeta de tu computadora (yo comprobé que funciona bien en Windows 7) y ya lo tienes instalado. Para desinstalarlo simplemente lo borras de tu carpeta. Te voy a poner un ejemplo previo de unas gráficas. Por ejemplo, queremos dibujar la gráfica para la función trigonométrica seno, y = sin(x), y también para la función coseno, y = cos(x), en el mismo script. Para ello debes escribir el siguiente script en el editor de scripts del programa:
Haces click en el botón “Dibuja gráficos“, y entonces el programa primegraph.exe crea la página web siguiente, que presenta en el navegador web que tengas instalado por defecto:

*El nombre Just G. Waller era el pseudónimo que yo usaba en mi época de programador informático.

Saludos

Posted in informática, Matemáticas | Tagged: , , , , , , , , , | 4 Comments »