Programación en Octave

Share this Post Share to Facebook Share to Twitter Email This Pin This

Si han tenido oportunidad de seguir este blog, en un post anterior platicamos acerca de Inteligencia Artificial  un curso que estoy tomando en Machine Learning y que una de las herramientas utilizadas es el curso es Octave que es  similar "Open free "de Matlab.

Octave es un lenguaje de programación para datos, es decir es un software que nos facilita el crear gráficas, realizar operaciones matemáticas simples y complejas, operaciones de álgebra lineal.

Octave GUI
Se puede instalar en Linux, Mac, Windows, la liga para descargarlo es https://www.gnu.org/software/octave/#install


Una vez que lo tengan instalado, pueden realizar algunas funciones como son:

  • Leer datos de un archivo con el comando
  • Crear matrices con datos aleatorios
  • Crear gráficas
  • Realizar operaciones con Matrices
  • Utilizar funciones para resolver sistemas de ecuaciones
Para ello podemos hacerlo por comando individuales o podemos hacerlo en un programa.

Primero vamos a cargar unos datos de una tabla que tengo con características de post de este blog y cuales les ha ido bien y cuales no


Pase los datos a un archivo de texto con las columnas separadas por comas

Ahora vamos a ver el programa en Octave

%cargar datos 
printf("bienvenido al ejemplo");
data = load('datablog.txt');
%cargar datos en matriz 5 con las caracteristicas
X = data(:, [1,2,3,4,5]); 
[m, n] = size(X);
%cargar datos de resultado en y 
y = data(:, 6);
figure; hold on;
pos = find(y==1); neg = find(y == 0);
%graficar
plot(X(pos, 1), X(pos, 2), 'k+','LineWidth', 2, 'MarkerSize', 7);

plot(X(neg, 1), X(neg, 2), 'ko', 'MarkerFaceColor', 'y','MarkerSize', 7);
xlabel('Caracteristicas');
ylabel('Resultados');
%crear un vector con 5 datos y ceros
Z = zeros(5, 1);
%crear una matriz  de 4 filas x 3 columnas con datos aleatorios
R = rand(m,n);
%multiplicar 2 matrices
Cal = R.*X;
%sumar 2 matrices
Sum = X + Cal;
%resolver sistema de ecuaciones
ResolveEcu = linsolve(X, y);
plot(ResolveEcu,y);


Las pantallas de salida en Octave


No olvides compartirnos y seguirnos en este blog o en Facebook.

Funciones en Progress 4gl

Share this Post Share to Facebook Share to Twitter Email This Pin This
Progress es un lenguaje que tiende a ser para programación estructurada pero también puede ser del tipo modular, ya que nos permite crear funciones y procedimientos para poder crear modularidad en nuestros programas para poder reutilizar las funciones y sea más fácil de entender, una forma de comparar la programación modular es como cuando tenemos un teatro en casa son un buffer, un subufer, barras de sonido y un controlador, esto visto en programación el controlador es el programa principal y las barras de sonido, bufer, etc son funciones, procedimientos o subprogramas.

Las funciones en Progress 4gl tienen las siguientes características 


  • Se deben escribir al principio del programa principal, o antes de ser llamada
  • Se debe utilizar la palabra reservada FUNCTION para iniciar el inicio End Function para definir el fin de la función
  • Se debe definir el tipo de dato que regresara la función utilizando la función RETURNS
  • Puede tener parámetros de entrada o no, los cuales se definen con la palabra INPUT
  • Se utiliza la palabra reservada RETURN para devolver el resultado de la función

¿Como hacer una función en Progress 4gl?


Vamos hacer un ejemplo que nos permita obtener el código de selección de pago en el que se pago una factura de un proveedor.

FUNCTION getpaydoc RETURNS CHAR (INPUT id_invoice  LIKE Cinvoice.Cinvoice_Id):
DEF VAR vc-paysel AS CHAR NO-UNDO INITIAL "".

   FOR FIRST DOmains NO-LOCK WHERE
               DOmaincode    = global_DOmain, 
         FIRST Company OF DOmains NO-LOCK,
         FIRST CInvoice   OF Company 
                WHERE Cinvoice.Cinvoice_ID = id_invoice    NO-LOCK,
         FIRST CDOcumentInvoiceXref OF Cinvoice NO-LOCK,  
         FIRST PayselLine OF CDOcumentInvoiceXref NO-LOCK,
         FIRST PaySel OF PaySelLine NO-LOCK:          
        vc-paysel = PaySelCode.
   END.  

RETURN vc-paysel.
END FUNCTION.

  • Primero definimos el nombre de nuestra función que en este caso es getpaydoc
  • La función nos regresara un valor tipo carácter, esto lo decimos con la instrucción RETURNS CHAR
  • Vamos a tener en este caso un parametro de entrada que es la parte del programa INPUT id_invoice  LIKE Cinvoice.Cinvoice_Id
  • Definimos la variable con la que regresaremos el valor resultado esto con la parte de DEF VAR vc-paysel AS CHAR NO-UNDO INITIAL "".
  • Realizamos la ejecución del query y asignamos el resultado a la variable
  • Regresamos el resultado RETURN vc-paysel.

¿Como utilizar funciones en Browse de QAD?


En QAD que es el ERP que conozco a más detalle tiene unos reportes que se llaman browse o vistas y lo que permite hacer es crear reportes con columnas, es muy ágil de diseñar porque es en base al diagrama entidad relación que se adicionan las tablas a utilizar y se seleccionan las columnas que queremos visualizar. Adicional a poder utilizar las tablas podemos colocar funciones en el apartado de Local Variables donde podemos escribir las funciones que requiramos en el browse.
Para poder utilizar la función en el Browse debemos agregar un campo calculado, vamos a utilizarlo como se muestra en la imagen, colocando en la parte de Expresión el llamado a la función que definimos antes.


Con esto ya hemos creado una función para poder colocar en un programa de Progress o en un Browse.

No olvides compartirnos y seguirnos en este blog o en Facebook.

Como adivinar una palabra con PHP haciendo permutaciones

Share this Post Share to Facebook Share to Twitter Email This Pin This
Hola bienvenido a un nuevo post, hace unos días un primo compartió una publicación de un concurso de TV de hace algunos años donde te daban pistas para adivinar una palabra, la imagen es como la siguiente :

Para llegar al resultado es haciendo permutaciones con las letras hasta lograr la palabra indicada. Que en este caso era Adriana.

Para poder entender el concepto de permutación, lo explicare como yo lo entiendo que es poder acomodar una secuencia de caracteres o de números en todas los posibles ordenes posibles sin que se repitan, por ejemplo este caso, tenemos una frase que dice "ADAN IRA" tiene 7 letras esto quiere decir que al calcular las permutacione utilizamos la formula de factorial es decir 7! o en Excel Facotrial(7) o lo mismo es 7x6x5x4x3x2x1  lo que nos da como resultado 5040 permutaciones posibles 


En Excel lo que hice para poder realizar de manera manual las permutaciones, fue utilizando la función de concatenar, ordenando las letras como se ve en la imagén, como imaginaran hacer esto de manera manual es mucho tiempo

Bueno para tratar de entender mejor el tema de permutaciones, hice otras imagenes que nos permiten ver de otra forma como hacer el ordenamiento

Otra forma de verlo es parecido a un grafo, donde los caminos son involucrar todos las letras 

Para verlo con otro ejemplo más númerico, tome 4 letras al obtener el factorial es 24, viendo este ejemplo de forma gráfica con las posibles combinaciones es la siguiente imagen

Permutación con la primer letra A, nos da 6 posibles permutaciones


Por lo que podemos deducir es que si empezamos con otra letra la permutación, en cada caso nos dará 6 resultados más y al multiplicar 4x3x2x1 = 24 soluciones es decir el factorial de 4! 

Ahora veamos como realizar la programación de este proceso y poder obtener la lista de permutaciones de una cadena ingresada.


Les comparto unas ligas con la explicación de las permutaciones por si no les quedo muy claro
Video de Matematicas Profe Alex, dan una explicación más amplia


Como hacer el programa en PHP

Primero la página WEB
<html>
<head>
<title>Permutaciones en PHP </title>
</head>
<body>
<p> Esta página es un ejemplo de como generar todas las posibles </p>
<p> Permutaciones de una lista de letras o números </p>
<img src="Diagrama_permutacion_lineal.PNG" alt="Permutaciones" height="300" width="300">
<p>Para poder generar las permutaciones, debes ingresar la lista de palabras, letras o números
<p>Separados por comas por ejemplo a,d,a,n,i,r,a
<form action="permutacion.php" method="GET">
 <div align="center">
   <input type="text" id="campo1" name="campo1"/>
   <input type="submit" value="Permutar"/>
 </div>  
</form>

<a href="https://www.programacionparatodos.com">www.programacionparatodos.com</a>
</body>

</html>

Pagina PHP


Luego el programa, estuve pensando como hacerlo de manera de utilizar solo funciones de PHP y bueno si funciona, pero con pocas combinaciones, hay más opciones de hacerlo utilizando recursividad si quieren hacerlo de esa forma pueden ver las ligas de:

Revise solo algunas  y las probé con la cadena de este ejemplo a,d,a,n,i,r,a y siempre estaba 5 o 6 veces con alguna de esas funciones, aclaro no probé todas las funciones ustedes pueden validarlas también.

Pero mi programa es el siguiente, utilice las funciones :

  • str_shuffle que hacen la permutación de una cadena  https://www.php.net/str_shuffle, por ejemplo esta función podría funcionar para generar un password. 

La lógica de mi programa es que busca todas las combinaciones en base a la función str_shuffle y si no la encuentra lo guarda en un arreglo e incrementa la variable.

Para ser sincera no es la forma más rápida de resolver este problema porque consume tiempo de ejecución, pero si me mostró las permutaciones correctas. 

<?php
 $entrada = $_GET["campo1"];
 $lista = explode (",", $entrada);
 $entrada = str_replace(",","",$entrada);
 echo "Dato de entrada " . $entrada;
 echo "<p>";
 $largo = count($lista);
 function factorial($var)  
{
   if($var==1)
      return 1;
   else
      return $var * factorial($var-1);
 echo "Permutaciones posibles " ;
 $tot_per = factorial($largo) ;
 echo $tot_per;
 echo "<p>";
 $result = array(); 
 $j = 0;
while ($j < $tot_per ) :  
  $temp = str_shuffle($entrada);
  if ($j == 0):
array_push($result, $temp);
$j = $j + 1 ;
echo $j . " " . $temp .  "<p>"; 
  endif;
  if ($j > 0):
      $key = in_array ($temp,$result, true) ;
      if ($key == false):
       array_push($result, $temp);
   $j = $j + 1 ;
   echo $j . " " . $temp . "<p>"; 
  endif;
  endif;
endwhile;
?>


Corriendo el programa con otra cadena 

La página para que puedan probarla es  https://ejemploprogramacionparatodos.000webhostapp.com/Pagina_permutaciones.html


Pueden hacer las permutaciones que requieran, crear password más seguros pensando en las palabras que utilizan normalmente pueden crear una nueva, o si les gusta como yo jugar melate pueden sacar números y armar nuevas combinaciones (solo por jugar no quiere decir que sea un calculo de juego y estadística)

No olvides compartirnos y seguirnos en este blog o en Facebook.

Graficar funciones en Python

Share this Post Share to Facebook Share to Twitter Email This Pin This
Bienvenidos a un nuevo post, en esta semana, en esta ocasión les quiero platicar acerca de una librería en Python que se llama matplotlib que nos sirve para gráfica funciones de matemáticas.


Habitualmente en Python existen muchas librerías, lo que hay que hacer es primero investigar si ya existe alguna que nos ayude y entenderla antes de inventar el hilo negro, en mi caso encontré un blog de Raul E. Lopez Briega donde habla de la librería Matplotlib


Como instalar Matplotlib
Para instalar deben utilizar el comando PIP en 2.7

Instalando en Python 3.7


Si tienen Python 2.7 deben realizar la ejecución de estos 2 comandos desde consola
  • python -m pip install -U pip
  • python -m pip install -U matplotlib
Aunque lo más recomendable es utilizar la versión 3.7 o superior de Python.

Un ejemplo basado de la pagina de Raúl para crear gráficas de ecuaciones cuadradas como la de la imagen y les mostrare 2 ejemplos más con diferentes funciones.

Programa para graficar en Python


import matplotlib.pyplot as plt
import numpy as np
import math as mt

def move_spines():
    """Esta funcion divide pone al eje y en el valor 
    0 de x para dividir claramente los valores positivos y
    negativos."""
    fix, ax = plt.subplots()
    for spine in ["left", "bottom"]:
        ax.spines[spine].set_position("zero")
    
    for spine in ["right", "top"]:
        ax.spines[spine].set_color("none")
    
    return ax

y = 10
x = np.linspace(-2, 6, num=30)

y = 10
x = np.linspace(-2, 6, num=30)

ax = move_spines()
ax.grid()
ax.plot(x,x + 3)
plt.title(r"Grafico de $f(x)=\sqrt{x + 2}$")
plt.ylabel('f(x)')
plt.xlabel('x')
plt.show()

Programa para Graficar 2 funciones en Python


import matplotlib.pyplot as plt
import numpy as np
import math as mt

#definimos las 2 funciones
# 2x al cuadrado +  5x - 2
def f1(x):
    return 2 * (x ** 2) + 5*x - 2
# P(t)={\frac {1}{1+e^{-t}}}}
def sigmoide(x):
    return 1 / (1 + mt.exp(-x))

#asignamos un rango de valores a graficar 
var = range(-10, 15)

plt.plot(var,[f1(i) for i in var], label= 'Funcion 1')
plt.plot(var,[sigmoide(i) for i in var], label= 'Función Sigmoide')

plt.xlim(-10, 10)
plt.ylim(-10, 10)
#colocamos la leyenda en la parte inferior derecha
plt.legend(loc='lower right')
plt.show()                



Programa para gráficar funciones trigonométricas

import matplotlib.pyplot as plt
import numpy as np
import math as mt


def seno(x):
return mt.sin(x)
def coseno(x):
return mt.cos(x)
def tangente(x):
return mt.tan(x)


var = range(-10, 10)


plt.plot(var,[seno(i) for i in var], label= 'Seno')
plt.plot(var,[coseno(i) for i in var], label= 'Coseno')
plt.plot(var,[tangente(i) for i in var], label= 'Tangente')


plt.xlim(-10, 10)
plt.ylim(-10, 10)
plt.legend(loc='lower right')
plt.show()

Algo que deben notar también, es que cuando mueven el curso sobre la gráfica muestra los valores calculados y las gráficas tiene un menú , donde puedes dar zoom , guardan una imagen de la gráfica, cambiar los parámetros para visualizar la gráfica 


Espero les sirva estos programas, ustedes pueden complementarlos para leer los datos de algún archivo csv, xml o txt. o realizar funciones más complejas.

No olvides compartirnos y seguirnos en este blog o en Facebook.

Combinación de colores, Moda y programación

Share this Post Share to Facebook Share to Twitter Email This Pin This
Hola bienvenidos a otro post de este blog, estuve pensando en que otra área podíamos utilizar programación así que leyendo las noticias e Instagram, el 4 de mayo debió llevarse acabo La MET Gala , que es un evento que promueve (Museo Metropolitado de New York) donde artistas, famosos y celebridades acuden al evento y siguen una temática en su vestimenta, este año es Tiempo: moda y su permanencia como no se llevo acabo muchos artistas decidieron recordar en Instagram con fotos de galas anteriores y Vogue hizo un vídeo con los momentos más representativos.

Como resultado de esto Pensé en la Moda para generar un programa y este post, no me considero una persona con el criterio para dar consejos de moda, pero si una persona que pueda desarrollar una Página que de manera aleatoria nos sugiera 4 colores a combinar en nuestra ropa .



Les platico un poco más acerca de la moda, hay 2 temporadas para la semana de la moda una para la colección primavera-verano y otra otoño-invierno las semanas de la moda terminaron el 28 de Febrero de 2020 en Milán pero en Septiembre 11 comienzan de Nuevo en New York, les comparto las fechas y las ciudades



  • Del 6 al 14 de Febrero y del 11 al 16 de Septiembre, fue la semana da la moda en New York
  • Del 14 al 18 de Febrero y del 18 al 22 de Septiembre, fue la semana de la moda en Londres
  • Del 18 al 24 de Febrero y del 22 al 28 de Septiembre, semana de la moda en Milan
  • Del 24 de Febrero al 4 de marzo y del 28 de Septiembre al 6 de Octubre, la semana de la moda en París
  • Otros eventos que son importantes para la moda son los premios como los Golden Globe, los Oscares, Emys, Gramys, MET Gala 

    Si quieren ver las fechas e incluso las agendas pueden verlo en las siguientes ligas:

    Cada año existen los colores de temporada y diferente temporadas en la moda de acuerdo a las temporadas, primavera,verano,otoño invierno 


    • Naranja
    • Saffron
    • Aguamarina
    • Verde Hierba fresca
    • Rosado Coral
    • Morado
    • Classic Blue o lei  Heridate BLue





    Bueno buscando todo esto pensé en como hacer una Pagina WEB , que te ayude a poder armar tus combinaciones en tu look y que estés a la moda. 

    Primer paso arme mi colección de moda con 6 diseños:



    Esta moda esta inspirada en una muñeca recortarle que vendían y que podías vestir, quizá viendo una imagen algunos la recuerden



    Mis diseños no tiene color, porque el color los vamos a mostrar  en la página en base a los colores de moda de esta temporada Primavera-Verano 2020, la página nos va a calcular la combinación y el atuendo de manera aleatoria 


    La página es  

    https://ejemploprogramacionparatodos.000webhostapp.com/Pagina_moda.html

    La pantalla de inicio tiene los 6 diseños y 2 botones: Diseño a vestir y Colores a combinar

    https://ejemploprogramacionparatodos.000webhostapp.com/Pagina_moda.html




    Con el botón diseño a vestir abre una pantalla con la sugerencia del diseño a vestir
    pagina PHP

    Con el botón colores a combinar , te abre otra pantalla con la sugerencia de 4 colores a combinar 
    colores aleatorios en PHP


    La página HTML


    <html>
    <head>
    <title>Combinaciones de Ropa</title>
    </head>
    <body>
    <p> Esta página es un ejemplo de como mostrar combinación de colores </p>
    <p> Primero mi coleccion de moda ProgramacionParaTodos 2020 </p>
    <img src="esquema.png" alt="Smiley face" height="300" width="800">
    <p>Ahora vamos a presionar el botón de Diseño a Vestir para
    elegir un modelo y despúes el botón Colores a Combinar para saber cuales utilizar
    y ¡¡¡vestir así el día de hoy!!!
    <form action="pagina_moda2.php" method="GET">
     <div align="center">
       <input type="submit" value="Diseño a Vestir"/>
     </div>  
    </form>
    <form action="pagina_moda3.php" method="GET">
     <div align="center">
       <input type="submit" value="Colores a Combinar"/>
     </div>  
    </form>

    </body>

    </html>

    El programa en PHP para seleccionar modelo

    <?php
    $num_atuendo = rand(1, 6);
    $esquema = "esquema" . strval($num_atuendo) . ".png";
    header("Content-type: image/png");
    $im = imagecreatefrompng($esquema);
    imagepng($im);
    imagedestroy($im);
     
    ?>

    Para el programa cada imagen es un archivo con nombre esquema1.png.... hasta el esquema6.png, lo que hacemos generar un numero aleatorio para que nos muestre el esquema correspondiente a ese número aleatorio.

    El programa en PHP para seleccionar colores
    <?php
    // Crear una imagen de 200 x 200
    $lienzo = imagecreatetruecolor(500, 100);

    // Asignar colores
    $azul = imagecolorallocate($lienzo, 51, 85, 139);
    $amarillo =  imagecolorallocate($lienzo, 254, 175, 18);
    $verde = imagecolorallocate($lienzo, 78, 196, 164);
    $chiva  = imagecolorallocate($lienzo,86, 92, 70);
    $rosa = imagecolorallocate($lienzo, 233, 172, 157);
    $canela = imagecolorallocate($lienzo, 162, 85, 58);
    $uva = imagecolorallocate($lienzo,114, 97, 124);
    $sol =  imagecolorallocate($lienzo,239, 218, 164);

    // Dibujar 4 cuadrados, cada uno con su color
    $col1 = rand(1,8);
    switch ($col1) {
        case 1:
            imagefilledrectangle($lienzo, 4, 4, 100, 100, $azul);
            break;
        case 2:
            imagefilledrectangle($lienzo, 4, 4, 100, 100, $amarillo);
            break;
        case 3:
            imagefilledrectangle($lienzo, 4, 4, 100, 100, $verde);
            break;
        case 4:
            imagefilledrectangle($lienzo, 4, 4, 100, 100, $chiva);
            break;        
        case 5:
            imagefilledrectangle($lienzo, 4, 4, 100, 100, $rosa);
            break;     
        case 6:
            imagefilledrectangle($lienzo, 4, 4, 100, 100, $canela);
            break;       
        case 7:
            imagefilledrectangle($lienzo, 4, 4, 100, 100, $uva);
            break;  
        case 8:
            imagefilledrectangle($lienzo, 4, 4, 100, 100, $sol);
            break;  
    }
    ........

    $col4 = rand(1,8);
    switch ($col4) {
        case 1:
            imagefilledrectangle($lienzo, 360, 4, 460 , 100, $azul);
            break;
        case 2:
            imagefilledrectangle($lienzo, 360, 4, 460 , 100, $amarillo);
            break;
        case 3:
            imagefilledrectangle($lienzo, 360, 4, 460 , 100, $verde);
            break;
        case 4:
            imagefilledrectangle($lienzo, 360, 4, 460 , 100, $chiva);
            break;        
        case 5:
            imagefilledrectangle($lienzo, 360, 4, 460 , 100, $rosa);
            break;     
        case 6:
            imagefilledrectangle($lienzo, 360, 4, 460 , 100, $canela);
            break;       
        case 7:
            imagefilledrectangle($lienzo, 360, 4, 460 , 100, $uva);
            break;  
        case 8:
            imagefilledrectangle($lienzo, 360, 4, 460 , 100, $sol);
            break;  
    }

    // Imprimir y liberar memoria
    header('Content-Type: image/jpeg');
    imagejpeg($lienzo);
    imagedestroy($lienzo);
    ?>



    Luego para saber de que color vestirse tome los códigos de colores RGB de la página https://simpledits.com/color-palette-guide-with-pantone-colors-for-spring-summer-2020-nyfw-with-hex-cmyk-and-rgb-values/  y puse igual 4 funciones rand para saber que colores pintar



    Recuerden probar la página 

    https://ejemploprogramacionparatodos.000webhostapp.com/Pagina_moda.html


    La verdad es una página muy sencilla y pueden hacer o existen otras aplicaciones más complejas que te permiten crear un closet virtual y armar combinaciones, o buscar tendencias de moda por ejemplo, buscar un atuendo por fotografía les comparto algunas opciones que encontré:

    También existe la opción de closets con tecnología como 

    No olviden compartirnos y seguirnos en este blog o en Facebook.

    Arduino y teclado

    Share this Post Share to Facebook Share to Twitter Email This Pin This
    Hola bienvenidos a un nuevo post, estuve pensando de que escribir esta semana y vi mi KIT de Sensores de Arduino y vi el Teclado como el de la imagen



    kit Elegoo para Arduino

    Recordé cuando estudiaba electrónica y que para hacer ese teclado se hacía de 2 formas una era, con Puch Botón NA (normalmente abiertos) que son como los de la imagen

    Push Boton
    Armar un teclado de 9 números era conectarlo como el diagrama siguiente

    Después de recordar esto pensé en probar el teclado con mi Arduino para hacer la validación de una clave como si fuera abrir una puerta por ejemplo.

    Como les comentaba en post anteriores mi kit lo compre en Amazon y son de la marca Elegoo y tiene un CD con el código para hacer pruebas.

    Les comparto el vídeo de como funciona el teclado con Arduino Uno, mi programa si se digita el numero 8, prende un LED y si presionan la tecla A se apaga, para conectar el teclado en la membrana de conexión esta marcado el numero 1 y 8, El pin 1 va conectado a pin D2 de nuestra placa de Arduino y el PIN 8 del teclado al Pin D9, yo utilice el 10 para conectar el LED.

    La parte del programa que yo actualice 



    void setup(){
      Serial.begin(9600);
      pinMode(ledPIN , OUTPUT);
    }
      
    void loop(){
      char customKey = customKeypad.getKey();
      if (customKey)
      {
        Serial.println(customKey);
      }
      switch (customKey)
          {
             case '8':
             Serial.println("Hola 8");
             digitalWrite(ledPIN , HIGH);   
             delay(1000); 
             break;
             case 'A':
             Serial.println("Hola A");
             digitalWrite(ledPIN , LOW);   
             delay(1000); 
             break;
          }  
      
    }

    Y les comparto el vídeo de ejecución del programa



    Foto de como se ve la ejecución en pantalla, cada vez que se digita el teclado. NOTA: si ven el monitor datos diferentes a los tecleados, puede ser que su teclado este conectado inversamente, a mi me paso, solo inicie con el pin inverso del teclado a mi placa de Arduino Uno.


    Si quieres ver algunos otros post de este blog acerca de Arduino visita las siguientes ligas

    No olvide compartirnos y seguirnos en este blog o en Facebook.

    Inteligencia Artificial

    Share this Post Share to Facebook Share to Twitter Email This Pin This
    Hola amigos bienvenidos a un nuevo Post, hace un mes ¡¡cumplimos un año de este blog!! y bueno no sabía de que escribir y me tome un tiempo para definir el tema de hoy que es Inteligencia Artificial, es un tema del que estoy comenzando aprender y que no quería hablar sin antes entender un poco más.


    Primero a principios de año visite con un grupo de amigas la primer Universidad solo enfocada a Inteligencia Artificial, esta escuela esta en los Emiratos Árabes Unidos en Abu Dabi la escuela se llama :



    Pagina de la Universidad de Inteligencia Artificial MBZUAI




    Llegamos primero con ayuda de Google maps a la ciudad inteligente de Masdar


    La Universidad esta dentro de la ciudad y llegamos y ahí hay algunos edificios, pero todavía sigue en construcción, estando ahí me sentí como en un capitulo de los Expedientes Secretos X (The x-Files), porque había vehículos estacionados, no vimos a nadie cuando nos estacionamos, se sentía como que había más personas pero no las veíamos, caminamos por donde creíamos se veía una puerta, pasamos por ahí y llegamos como a un patio central donde vimos varios edificios con departamentos suponemos de las personas que viven ahí. Después bajamos por unas escaleras y no llegamos a ningún lugar, luego vimos un letrero y pensamos que por ahí podíamos llegar nos metimos y encontramos baños y un cartel para poder solicitar transporte preguntamos y nos dijeron que SI, solo nos preguntaron cuantas personas eramos y nos enviaron una Van, los autos de la ciudad son o eléctricos o con gas.
    Llegando la Van nos llevaron a la Universidad ahí llegamos y todo se veía cerrado, pudimos entrar a la biblioteca y solo había 2 personas, vimos el edificio central pero nos indicaron que solo podían ingresar los maestros o los alumnos. 
    No encontramos con quien platicar acerca de la Universidad pero en la página de ellos mencionan que tienen 4 programas, 2 maestrías y 2 doctorados  en Aprendizaje Automático o Machine Larning,Vision por Computadora o Computer Vision.

    Les comparto algunas fotos de las instalaciones

    MASDAR
    El estacionamiento de Masdar 

    Llegando a la Universidad

    La recepción de la Universidad, pero cuando fuimos estaba vacía y nos dijeron que no podíamos ingresar al edificio principal.

    Biblioteca

    Primer Universidad de Inteligencia Artificial
    Caminando por los otros edificios vecinos


    La idea de aprender acerca de nuevas tecnologías siempre se me hace emocionante y estar en un lugar así me hizo darme cuenta que el mundo sigue avanzando que lo que aprendí en la Universidad, o en la Maestría, o diplomados o en curso, aún no es suficiente que siempre hay mucho más por aprender, siempre hay algo nuevo que estudiar que descubrir y que vivir.

    La Inteligencia Artificial es una área de la computación que se encarga de entender como poder simular por medio de computadoras los procesos de aprendizaje que tenemos los humanos o el comportamiento y reacción que tenemos a nuestro entorno, para lograr que máquinas, robots, software puedan realizar tareas como si las hiciera una persona pero de manera más precisa y más rápida un ejemplo de esto es: la identificación de rostros en Facebook, la separación de nuestros correos de spam, o incluso cuando redactamos un correo por ejemplo en Gmail nos trata de predecir que queremos escribir, robots que pueden seguir una ruta de manera autónoma, robots de WhatsApp y Facebook Messenger, un dron pueda realizar una entrega de pedido solo

    Helicóptero manejado autonomamente por la Universidad de Stanford

    Durante mi vida académica solo he tenido 2 momentos de estudio directo para Inteligencia Artificial uno durante mis años en la Universidad en la BUAP donde tome la materia, donde recuerdo haber visto teoría de grafos, árboles de decisión, autómatas. Y en este momento estoy tomando un curso en linea Machine Learning de la Universidad de Stanford  donde la verdad he aprendido varios conceptos como que hay Algoritmos de aprendizaje controlados y NO controlados, los controlados son los que los resultados a llegar ya son conocidos. Para los NO controlados son resultados pero organiza los datos y en base a la preparación de los datos llega a una respuesta. en el curso he visto proceso de regresión lineal, funciones de costo, como aplicar álgebra por medio de matrices y vectores como poder resolver problemas .

    Curso de Learning Machine Coursera

    Utilizar Probabilidad, regresiones lineales y otras técnicas de matemáticas para poder encontrar predicciones de datos, como mediante las gráficas entender que significa los valores, encontrar el segmento de borde entre una clasificación y otra.

    Encontré un diagrama de Machine Learning que explica sus ramificaciones y sus usos

    Tomado de OTECH

    Hay dos herramientas de software en el curso que son Matlab y Octave que son utilizados para realizar cálculos, para mostrar datos, son utilizados para biología, robots, procesamiento de imágenes es usado por ingenieros, doctores, científicos...
    Otros lenguajes de programación para poder realizar estudios o análisis de inteligencia artificial son R, Python 


    MATLAB


    Octave es la "versión gratuita" similar a MATLAB



    Si quieren imaginar que se puede hacer estudiando inteligencia artificial o alguna de sus ramas les recomiendo ver  las siguiente lista de películas:

    Eagle Eye o la Conspiración del pánico
    El Hombre bicentenario

    Al terminar mi curso les escribiré más acerca de este tema tan interesante y complejo.
    No olvide compartirnos y seguirnos en este blog, en Facebook.