Banner de perfil
0

Miguel Marco Vinicio Sinay Herrarte

@miguel-sinay

Estudiante de ciencias de la computación.

Santa Rosa, Guatemala

Siento que nada puedo instalar

Miguel Marco Vinicio Sinay Herrarte@miguel-sinay

Hola.

El curso va súper, dictado por un excelente profesor.

Estoy usando Windows Server 2019. Por ahora solamente he podido obtener la imagen 'hello-world' de Docker y se ha ejecutado con éxito. Ahora, sí intento obtener y ejecutar las imágenes de Apache y Nginx solamente obtengo puros mensajes de error. :-(

¡Ayuda!


Entonces supongo que no se les saca todo el jugo a los diccionarios

Miguel Marco Vinicio Sinay Herrarte@miguel-sinay

Me parece interesante que los diccionarios se utilicen sólo para tipos de datos primitivos. Yo realmente no tengo mucha experiencia en programación. Sin embargo, si usted lo dice es porque ha de ser cierto.

Al principio estaba mal entendiendo que los diccionarios sólo soportaban tipos de datos primitivos, así que escribí un pequeño programa para experimentar. De todas formas, creo que no se les ha de aprovechar mucho para guardar datos más complejos... LOL :-)

Comparto el código que escribí para experimentar:

1using System; 2using System.Collections.Generic; 3 4namespace CSharpColecciones 5{ 6 class Nave 7 { 8 public string matricula; 9 public string marca; 10 public string color; 11 12 public Nave(string mat, string mar, string col) 13 { 14 this.matricula = mat; 15 this.marca = mar; 16 this.color = col; 17 } 18 } 19 class Program 20 { 21 static void Main(string[] args) 22 { 23 Nave miNave = new Nave("626", "Nissan", "Azul"); 24 25 var listaDeDatos = new Dictionary<string, Nave>(); 26 listaDeDatos.Add("primero", miNave); 27 Console.Write($"\nClave: primero - Detalle: " + 28 $"\n\t{listaDeDatos["primero"].matricula}" + 29 $"\n\t{listaDeDatos["primero"].marca}" + 30 $"\n\t{listaDeDatos["primero"].color}"); 31 } 32 } 33}

PD.: ¡No puedo creer que haya escrito esto sin haber llegado al módulo de POO! Parece que la poca experiencia que tengo en Java me ha servido.

Estoy maravillado con su forma de explicar, hasta ahora estoy contento con el curso. Es usted un gran docente, Prof. Teheran.

Un respetuoso saludo desde Guatemala.


¿Qué pasa con el nuevo curso de Bases de datos desde cero?

Miguel Marco Vinicio Sinay Herrarte@miguel-sinay

Al personal que elabora los cursos en EDteam.

Muchas gracias por los excelentes cursos que crean, por ahora no he tomado demasiados y los pocos que he tomado hasta ahora me han servido muchísimo.

Estaba disfrutando de la didáctica y buenísima experiencia de aprendizaje en el curso de Bases de Datos desde cero en los últimos meses (no lo terminé antes por proyectos de la facultas :-( ). Ahora con la actualización que han lanzado hoy me he quedado bastante sorprendido porque este nuevo curso, revisando el temario, no veo ni rastro de diseño de bases de datos e incluso en la descripción del nuevo curso me da a entender que sólo es un curso de SQL. Y como mencionó el Prof. Alexys en el curso antiguo: "...cursos de SQL en internet abundan...".

Y literalmente en el temario se ve que solamente es un curso de SQL, no un curso de bases de datos. Yo no sé si les faltan clases por agregar. Estoy muy sorprendido por esta versión nueva, no refleja la calidad que ustedes suelen entregar en esta plataforma.


Personal Pro para estudiantes y educadores

Miguel Marco Vinicio Sinay Herrarte@miguel-sinay

¡Qué hay comunidad!

Si son estudiantes o profesores de colegio o universidad y su institución les provee una dirección de correo de dominio '.edu', pueden acceder al plan Personal Pro de forma gratuita.

Para esto deben registrarse en Notion con su dirección de correo institucional que muy probablemente tenga el nombre de dominio '.edu'.

Posterior al registro abren el panel de configuraciones 'Settings & Members', se dirigen al área 'Plans' donde les aparecerá una tabla con planes y sus precios, se desplazan hacia abajo de esa página (scrolear) al FAQ y debajo de una de las preguntas aparece un botón gris que dice más o menos 'Upgrade to Personal Pro': clic allí y si aparece una ventana modal de confirmación le dan al 'Sí' y ¡ya tienen Notion Personal Pro!

Siendo sincero no recuerdo en cual pregunta aparece dicho botón gris, tampoco recuerdo exactamente su texto, pero sí dice algo como 'Upgrade...'.

Este fue más o menos el proceso que tuve que seguir para mejorar mi plan y funcionó. Utilizo Notion para guardar enlaces a artículos y páginas, guardar apuntes y preparar borradores, me sirve muchísimo en la universidad. Agradezco a EDteam por este súper curso.


REVOKE no funcionó

Miguel Marco Vinicio Sinay Herrarte@miguel-sinay

Qué tal.

Antes déjenme agradecerles por el curso, ¡va súper!, la didáctica es increíble.

Acabo de hacer la prueba con los usuarios 'pedro' y 'pablo', la instrucción "REVOKE" aplicada para la conexión del usuario 'pablo' NO SURTIÓ EFECTO ni siquiera reiniciando el servicio postgresql. En teoría el usuario 'pablo' no debería poder acceder a la base de datos clase04, ¡resulta que sí puede! :(

Lo aterrador aquí es que yo creía que PostgreSQL era un DBMS seguro. Si creen que estoy haciendo algo mal, agradecería las correcciones.

Saludos.


Mi humilde expresión regular

Miguel Marco Vinicio Sinay Herrarte@miguel-sinay

¡Qué hay, comunidad! Comparto mi expresión regular.

1/(http(s)?:\/{2})?(w{3}.)?[a-z\.-]+\/?/gm

Me funcionó para las siguientes cadenas de caracteres:

1https://ed.team 2https://reg-exp.com/ 3http://google.com 4miguel-sinay.com 5https://www.portal.ingenieria.usac.edu.gt/ 6https://portal.ingenieria.usac.edu.gt/

Realmente no es del todo confiable, pues permite guiones al final de los nombres de dominio. Requiere mucho más tiempo escribir una expresión regular que controle ese inconveniente.


¿Tan importante es el casteo?

Miguel Marco Vinicio Sinay Herrarte@miguel-sinay

Hola.

Llevo un rato con una pequeña crisis y ya me empezó a preocupar cómo he asimilado durante años las operaciones aritméticas en programación.

Este es un pequeño programa en C. Lo interesante es que al ejecutar este programa me arroja como resultado 0.

1#include<stdio.h> 2 3int main(){ 4 double val = 0; 5 val = 5 / 2; 6 printf("%f", val); 7}

Ahora, si someto a la misma división a un casteo resulta que el programa allí sí me muestra por pantalla 2.5. :(

1#include<stdio.h> 2 3int main(){ 4 double val = 0; 5 val = (double) 5 / 2; 6 printf("%f", val); 7}

Desde que inicié con C++ en el 2016 hasta ahora yo tenía entendido que una variable de tipo double (incluso float) está en capacidad de guardar por sí sola una cifra con dígitos decimales, sin requerir un casteo.

Lo que me aterra es que hice este mismo experimento en Java y sucede lo mismo. Ahora ya no sé qué pensar...

Si alguien me puede aclarar bien esto se lo agradecería.


Para entender la recursividad hay que entender la recursividad... y yo no la entiendo

Miguel Marco Vinicio Sinay Herrarte@miguel-sinay

Triste mi caso. Desde hace años he tratado de entender la recursividad y no encuentro video tutorial perfecto con el cual entenderla. Ni en la facultad, ni en YouTube; en ningún sitio he hallado cómo entender ese concepto tan útil.

En el año 2020 un ingeniero cabrón que me daba clases nos mostró un ejemplo de algoritmo de búsqueda binaria, aprovechando el poder de la recursividad. A día de hoy miro ese método donde está ese algoritmo y no le entiendo nada.

Ya hasta decepcionado de mí mismo estoy. :(

Este curso ha estado súper. Me aclararon muchas dudas en relación a los paradigmas que más se usan en la programación.


Certificado arruinó la apariencia del sitio

Miguel Marco Vinicio Sinay Herrarte@miguel-sinay

Tras haber instalado el certificado la apariencia del sitio quedó de lo más desagradable. Inspeccioné el código fuente de la página en el navegador y me doy cuenta que no puede descargar los recursos CSS y JS, esto debido a que se trata de obtener esos códigos fuente mediante el protocolo https, más o menos así:

1https://w.x.y.z/virtual-um/wp-content/themes/twentyseventeen/assets/js/global.js?ver=1.0

Cuando en realidad solo puedo hacerlo así (mediante el protocolo HTTP):

1http://w.x.y.z/virtual-um/wp-content/themes/twentyseventeen/assets/js/global.js?ver=1.0

Al introducir la primera URL en el navegador, aparece un mensaje que dice más o menos que "el contenido realmente no es seguro", lo cual es obvio, ya que generamos un certificado para un nombre de dominio, no para una dirección IP.

Solo deseaba compartir mi experiencia. Si alguien sabe como se podría resolver esto, ya sea con el código fuente de WordPress o algo más: me cuentan por favor.

Saludos y bendiciones.


Problema al configurar los logs de los sitios

Miguel Marco Vinicio Sinay Herrarte@miguel-sinay

Al reiniciar el servicio NGINX me tiraba un mensaje de error que me recomendaba encontrar más información escribiendo el comando "journalctl -xe", pues lo ejecuté y de entre el montón de información que me arrojó, identifiqué que esta línea muestra el desencadenante de todo el inconveniente:

1Jan 25 01:12:14 ip-172-31-27-130 nginx[3243]: nginx: [emerg] invalid log level "nativa.tech_error.log" in /etc/nginx/sites-enabled/nginx1.nativa.tech:7 2

Indagando un poco por internet, concluí que debía configurar algo llamado 'level log', lo cual no es más que un parámetro que puede ser: critic, alert, error, entre otros. Escribí el parámetro en el archivo de nginx1.native.tech y quedó así:

1server { 2 listen 80; 3 server_name nginx1.nativa.tech; 4 root /var/www/html/nginx1; 5 index index.html; 6 7 error_log /var/log/nginx/nginx1 nativa.tech_error.log error; 8 access_log /var/log/nginx/nginx1 nativa.tech_acces.log; 9} 10

Lo cual tampoco hizo mucha diferencia, así que para no perder más tiempo decidí que para estos sitios no habría registros (logs). Comenté mediante '#' las líneas de configuración de logs en los dos archivos, nginx1.native.tech y nginx2.native.tech. El archivo quedó así:

1server { 2 listen 80; 3 server_name nginx1.nativa.tech; 4 root /var/www/html/nginx1; 5 index index.html; 6 7 # error_log /var/log/nginx/nginx1 nativa.tech_error.log error; 8 # access_log /var/log/nginx/nginx1 nativa.tech_acces.log; 9} 10

Estos son los sitios por los que anduve indagando (dejo los hipervínculos como referencia):