La Aventura de Aprender

  • Home
  • Quienes somos
  • BLOG
    • Presentaciones
    • Programación
    • Programas de utilidad
    • Crecimiento personal
    • Linux
    • Instalaciones
  • Cursos
You are here: Home / Archives for Luis Diago

Consejos para nuevos programadores

2 octubre, 2018 by Luis Diago Leave a Comment

Todo programador tiene un inicio. Tener un código bien realizado no se hace de la noche a la mañana porque sí. Es necesario escribir en papel, darle vueltas al problema, ver cómo podemos solucionarlo, en definitiva, hay que echar horas y practicar. Un buen programador no nace, se hace.

Vamos ahora a ver una serie de consejos que pueden ayudarte a entender lo que tienes que programar y a escribir el código. Al principio programar cuesta (hay a gente a la que le cuesta más que a otra).

Consejos

  • Tómate el tiempo que necesites. El tiempo que tardes no determina la categoría del programador. No eres mejor por ir más rápido. Hay que pensar las cosas muy bien, pensar que fallos pueden darse si nos saltamos cosas y pensar en un código eficiente.
  • Escribe en un papel. Ayudarte de garabatos y notas en un papel es fundamental, programar es parecido a crear soluciones a problemas y los problemas se resuelven en papel. Apunta los datos, las operaciones, como cuando eras un niño haciendo cuadernillos Rubio en primaria.
  • Ayúdate de los comentarios. Los comentarios en programación no son solo para que otro programador pueda saber que hace tu clase o tu función. Sirven también para ayudarte a ti. Imagina que hiciste un programa hace unos meses o un año y tienes que recurrir a una actualización, vaya…  lo mismo no te acuerdas de que hacían la mitad de las cosas. Por ello es vital el uso de comentarios. Además ahora que estás aprendiendo concédete el uso de aún más comentarios aunque parezca que sobran.

  • Práctica práctica y práctica. Codifica mucho, invierte tiempo en ello, pero hazlo bien. Mirar videos de programación no vale nada. Limítate a lo que ves en clase. Atiende, y practica en casa. Si en clase haces un programa de una frutería o un hospital, en casa haz ejercicios parecidos, por ejemplo de una carnicería y de una clínica veterinaria, cambia los datos para así comprender bien cómo funciona el programa y por qué está funcionando. Ten en cuenta que ahora estás aprendiendo un lenguaje pero al final de curso sabrás 5 más y todos los lenguajes se escriben casi igual.
  •  No desesperes. Personalmente me organicé mal en un principio, se me empezó a acumular el contenido y suspendí los dos últimos trimestres pero poco a poco me di cuenta de cómo se tenían que hacer las cosas y acabé sacando un 7 en programación y me encanta programar y me puedo pasar horas haciéndolo sin darme cuenta. Cuando descubres el truco te das cuenta de que es lo mejor del mundo.
  • Por último nunca se deja de aprender. Cada día que pasa se aprende algo nuevo programando ya sea de un lenguaje o de otro y eso hace que un programador esté siempre en una búsqueda constante de expansión de sus conocimientos para poder ampliar sus programas.

Reflexión

Para finalizar no quiero pasar por alto que ahora estás aprendiendo y al principio solo verás bucles, variables, funciones, clases… después empezará a haber mucha información y será un lio, pero cuando más adelante veas que todo eso se puede unir con la asignatura de bases de datos, guardar la información, ponerle una interfaz gráfica para no tener que pedir las cosas por consola, descubrirás que es genial, es divertido y te pasaras horas haciendo que quede bien tu programa y tu interfaz y lo harás mezclando todas las asignaturas en un solo programa y eso, eso te dará la satisfacción de saber que has aprendido, que lo que hacías tenía un sentido final y comprenderás el poder de crear cosas de la nada con tus propias manos y de poder ofrecérselas al mundo.

Filed Under: Programación

Distribuciones más utilizadas de Linux

6 junio, 2018 by Luis Diago Leave a Comment

En este apartado pretendo hablaros sobre las distribuciones más utilizadas de linux, pero, como no es algo fijo, no voy a deciros cuales son las más usadas ahora (para conocer el estado actual de estas entrad en “www.distrowatch.com”), sino que os voy ha hablar de las más usadas en general y ya de paso voy a daros unos consejos personales sobre ellas, pues he estado probado las más comunes y me he sorprendido con lo que he visto.

1. Mint:

Basada en Ubuntu, es mi distribución favorita y la que utilizo actualmente. Esta distribución ha conseguido ganarse mi afecto debido al excelente resutado que me ha dado y sigue proporcionandome a día de hoy. Es muy compatible con mi ordenador y se adapta perfectamente a él, además de ser una de las más fáciles de usar y poseer la mayor variación de aplicaciones en tienda.
Como pega he de decir que no detecta todos los dispositivos bluetooth que debería (ni actualizando los controladores).

2. Manjaro:

Es otra de mis favoritas, la usé durante mucho tiempo antes de pasarme a Mint. Esta distribución se adapta a cualquier ordenador y actualiza los drivers para que sean perfectamente compatibles con tu ordenador, con lo cual, funciona a las mil maravillas.
La pega que tiene es que está basada en Arch, lo que cambia bastante su forma de uso, así como algunos de los comandos y el gestor de paquetes.

3. Debian:

Esta distribución es otra de las buenas, no consume muchos recursos y tiene un componente extra a la hora de tener un dispositivo más seguro. Debian tiene muchos derivados, entre ellos se encuentra Kali, distribución dedicada a la seguridad informática, realización de auditorias, etc.
Una de las contradicciones que tiene es que la cantidad de dispositivos en los que funciona es menor que el del resto de distribuciones, con lo que puede que en tu ordenador no funcione.

4. Ubuntu:

El recomendado para principiantes, facilísimo de usar y perfectamente compatible con la mayoría de ordenadores del mercado.
Uno de los pocos fallos que tiene es la poca cantidad de software disponible en tienda y los fallos que esta produce de vez en cuando, pero este mal es minúsculo pues la tienda es prescindible.

5. Antergos:

El Arch gallego, grata sorpresa la que produce esta distribución. Funciona igual que Manjaro. Consiste en una distribución increiblemente bonita y muy fiable, aunque no es compatible con muchos ordenadores.

6. Elementary OS:

Un linux muy facil de usar y que consume poquísimos recursos y que tiene gran parecido a macOS.
Como pega… ninguna, pero claro, prefiero cualquiera de los anteriores. Si estás pensando en usarlo debido a lo bien que sale en las fotos, no te dejes engañar y recuerda, cualquier linux se puede modificar facilmente y dejarlo al gusto de cada uno.

Filed Under: Linux

PHP y MySQL la simbiosis del éxito

6 junio, 2018 by Luis Diago Leave a Comment

En primer lugar vamos a ver que es PHP:

PHP, acrónimo recursivo en inglés de PHP Hypertext Preprocessor (procesador de hipertexto), es un lenguaje de programación de propósito general de código del lado del servidor originalmente diseñado para el desarrollo web de contenido dinámico. Fue uno de los primeros lenguajes de programación del lado del servidor que se podían incorporar directamente en un documento HTML en lugar, de llamar a un archivo externo que procese los datos. El código es interpretado por un servidor web con un módulo de procesador de PHP que genera el HTML resultante.

Y vamos a ver también que es MySQL:

MySQL es un sistema de gestión de bases de datos relacional desarrollado bajo licencia dual: Licencia pública general/Licencia comercial por Oracle Corporation y está considerada como la base datos de código abierto más popular del mundo, y una de las más populares en general junto a Oracle y Microsoft SQL Server, sobre todo para entornos de desarrollo web.

¿Por qué su uso simultáneo?

Pues bien, gracias a PHP y MySQL podemos crear cualquier cosa, desde un login, a un sistema que permita a los usuarios subir contenido a una web, estilo red social. Podremos crear listas con las fotografías de los usuarios o podremos crear un programa de gestión de una tienda, por ejemplo, que guarde sus compras (artículos, precios, cantidades…) para hacer un estudio posterior que mida los productos más vendidos para reponerlos más a menudo, los que menos se venden para pensar en su posible retirada, las horas de más afluencia para poder ofrecer ofertas a los usuarios, etc.

Para comprender un poco esto vamos a ver como se hace un login con las contraseñas cifradas (para mayor seguridad).

En primer lugar crearemos una clase nueva en PHP que se llamará por ejemplo: “BaseDatos” y en ella introduciremos lo siguiente.

Y crearemos un constructor:

Ahora podemos crear una función que hará las consultas sql:

Ya tenemos lo mínimo y básico para poder hacer consultas, pero aún falta mucho camino. En este ejemplo queremos hacer que las consultas se guarden en nuestra base de datos, así que, realizaremos un formulario que por medio de un INSERT mandará esos datos por el POST y los introducirá en la base de datos. Por tanto, antes de crear el formulario habrá que crear una clase nueva donde se encontrará nuestro INSERT.

La siguiente clase podríamos llamarla “Usuarios”.

Además vamos a introducir las variables privadas del id, el mail y la contraseña.

Ahora es el momento de introducir los GETTER and SETTER.

Introducimos los SETTER, primero del id, luego del mail y de la password. Muy importante fijarse en la forma de introducción de la contraseña pues la estamos cifrando para mayor seguridad en nuestra web. Para ello usamos la función password_hash.

Los GETTER en este caso no vamos a usarlo pero serían los responsables de imprimir el contenido.

El siguiente punto es usar nuestros SETTER para introducir los elementos en la base de datos. Como ya sabemos que la información vendrá a través del formulario crearemos la siguiente función (el nombre es al gusto de cada uno):

Como vemos esta función al final llama a otra, “addElemBD()”. Bien, que hará esa función. Realizará nuestro INSERT.

Cabe destacar la importancia del “alert” que nos indica si hubo un error, si por lo que sea metimos mal la password de la base de datos o el usuario o cualquier cosa, ese “alert” nos va a ahorrar horas de trabajo intentando averiguar cual fue el error.

Como se puede comprobar esta función crea una nueva base de datos usando la clase BaseDatos que ya hicimos. También llama a la función consulta que creamos también anteriormente.

Ahora solo quedaría crear el formulario:

Lo primero que vemos arriba, nuestro script es para validar que el correo y la contraseña sea iguales puesto que pedimos dos veces los mismos para poder verificarlos correctamente.

Después estaría el formulario. En lo que hay que fijarse es el “action” y el “method”.

Como los datos van por el post, al hacer click en el botón y si todo ha sido verificado,  se sube la consulta a la base de datos con los datos introducidos.

Para ello tendríamos que poner en la parte controladora de nuestra página lo siguiente:

Como siempre metemos el try/catch para que si hay algún problema nos lo diga y poder arreglarlo e importamos los ficheros donde se encuentran las otras dos clases, BaseDatos y Usuarios.

Finalmente ya estaría todo listo, ahora solo necesitaríamos hacer pruebas y si todo va bien, a disfrutar.

Filed Under: Programación Tagged With: PHP y MySQL

AppleCinema

5 junio, 2018 by Luis Diago Leave a Comment

Aplicación orientada a cines. Permite la compra de entradas, elección de la comida y asientos…

AppleCinema

AppleCinema.key

Filed Under: Presentaciones, Programas de utilidad

Nmap para desarrolladores

24 febrero, 2018 by Luis Diago 1 Comment

¿Qué es Nmap y cuáles son sus usos?

 

Nmap es un programa open source, utilizado para la evaluación de sistemas informáticos y el descubrimiento de servicios o servidores, así como el rastreo de puertos en una red informática mediante el envío de paquetes y el análisis de sus respuestas.  Gracias al uso de scripts se pueden realizar detecciones más avanzadas (como la versión del sistema operativo) y detecciones de vulnerabilidades.

Nmap no es un programa exclusivo de la ciberseguridad ni de los administradores de redes, los usos que puedes darle a este programa como desarrollador serían, entre otros: ver el estado de tus puertos realizando un autoescaneo de tu máquina y comprobar cuantos puertos estas usando, así como el estado en el que se encuentran los mismos, asegurándote el estar protegido y el haber instalado correctamente dichos servicios. Otro uso sería el de conocer cuántos equipos tienes conectados en tu red y comprobar mediante la información recibida que no tienes intrusos.

 

Tipos de Nmap:

 

– Sondeo TCP SYN (-sS): es sigiloso y muy rápido ya que no completa las conexiones, además proporciona el estado del servicio, indicando si el puerto se encuentra abierto, cerrado o filtrado (es decir, bajo un cortafuegos o un antivirus).

– Sondeo TCP conect (-sT): Ya sea porque el usuario no tiene suficientes privilegios para enviar paquetes en crudo o porque se esté sondeando redes IPv6. Este tipo suele ser menos sigiloso.

– Sondeos UDP (-sU): como la mayoría de los servicios más habituales de Internet utilizan el protocolo TCP algunos auditores de seguridad ignoran estos puertos y muchas veces pueden encontrarse servicios UDP vulnerables. Puede utilizarse simultáneamente con el sondeo SYN para comprobar los dos a la vez.

– Sondeo Null, sondeo FIN y sondeo Xmas o de árbol de navidad (-sN, -sF -sX): Estos 3 sondeos aprovechan una indefinición en la RFC de TCP que diferencia los puertos abiertos y cerrados.
La ventaja fundamental de este tipo de sondeos es que pueden atravesar algunos cortafuegos que no hagan inspección de estados o encaminadores que hagan filtrado de paquetes. Null scan es el recomendado para escanear sistemas basados en Unix.

– Sondeo TCP ACK (-sA): Se utiliza para mapear reglas de cortafuegos, y para determinar si son cortafuegos con inspección de estados y que puertos están filtrados.

– Sondeo de ventana TCP (-sW): Este tipo es exactamente igual al sondeo ACK que se aprovecha de un detalle de implementación de algunos sistemas que permite diferenciar puertos abiertos de los cerrados, en lugar de imprimir no filtrado cuando se devuelve un RS.

– Sondeo TCP Maimon (-sM): Esta técnica es exactamente la misma a los sondeos Null, FIN, y Xmas, pero en los que se envía una sonda FIN/ACK.

– Sondeo de protocolo IP (-sO): El sondeo de protocolo IP le permite determinar qué protocolos (TCP, ICMP, IGMP, etc.) soportan los sistemas objetivo. Esto no es, técnicamente, un sondeo de puertos, dado que cambia los números de protocolo IP en lugar de los números de puerto TCP o UDP. Pero también se puede utilizar la opción -p para seleccionar los números de protocolo a analizar, los resultados se muestran en el formato de tabla utilizado para los puertos e incluso utiliza el mismo motor de sondeo que los métodos de sondeo de puertos reales.

– Puede utilizarse el sondeo de versión (-sV) para diferenciar de verdad los puertos abiertos de los filtrados.

-Por ultimo encontraríamos el sondeo TCP a medida –scanflags y -sI <sistema zombi [:puerto_sonda]>(Sondeo ocioso).

SYN SCAN

 

Especificación de puertos y orden de sondeo:

 

Nmap ofrece distintas opciones para especificar los puertos que se van a sondear y si el orden de los sondeos es aleatorio o secuencial. Estas opciones se añaden a los métodos de sondeos que se han discutido previamente. Nmap, por omisión, sondea todos los puertos hasta el 1024 además de algunos puertos con números altos listados en el fichero nmap-services para los protocolos que se sondeen.

-p  1-65535 (Sólo sondea unos puertos específicos).

– Sondeo rápido (puertos limitados) (-F):

Indica que sólo quiere sondear los puertos listados en el fichero nmap-services que se incluye con nmap (o el fichero de protocolos si indica -sO). Esto es más rápido que sondear todos los 65535 puertos de un sistema. La diferencia de velocidad con el sondeo TCP por omisión (unos 1650 puertos) no es muy alta dado que esta lista contiene muchos puertos TCP (más de 1200). La diferencia puede ser muy grande si especifica su propio fichero nmap-services más pequeño si utiliza la opción –datadir.

-Sondeo secuencial (-r) : Nmap ordena de forma aleatoria los puertos a sondear por omisión (aunque algunos puertos comúnmente accesibles se ponen al principio por razones de eficiencia). Esta aleatorización es preferible, pero si se quiere analizar de forma secuencial los puertos se puede especificar la opción -r.

 

Zenmap:

 

Para aquellas personas que deseen el uso de esta herramienta, pero no quieran hacer uso de la shell de linux (o en su defecto de otros sistemas operativos para los cuales está disponible) podrán elegir la opción gráfica de esta herramienta cuyo nombre es Zenmap, que permite hacer todo lo que realiza Nmap pero a golpe de ratón. Una de sus ventajas es que no hace falta recordar cada tipo de Nmap, pues te va indicando que tipo de escaneo deseas realizar.

Filed Under: Linux, Programas de utilidad

Copyright © 2019 · eleven40 Pro Theme on Genesis Framework · WordPress · Log in