Automatizando CURL Requests

Standard

Introducción:

Hola, desde un tiempo para acá, he estado explorando el automatizar muchas tareas a través de bash scripts.

Una de las tareas que es muy repetitiva cuando estamos utilizando REST APIs, es probar y guardar requests usando unos Clientes REST.
A continuación te comparto un par de Clientes REST basados en Chrome que son los que yo utilizo:
– Advance REST Client. https://advancedrestclient.com/
Contando con estas herramientas, es muy común que tengas varios requests que quieras usar permanentemente, para esto puedes utilizar comandos bash en terminal que después puedes automatizar con scripts.
En este post me voy a enfocar en los requests más comunes para probar un API REST que son GET, POST, PUT y DELETE.

¿Qué es curl?

Curl es una herramienta de la línea de comandos y una biblioteca para transferir datos usando una sintaxis de URL.
Soporta muchísimos protocolos y operaciones, los protocolos que yo he usado son HTTP, HTTPS y FTP, y la operación de transferencia de archivos.
maxresdefault
Para los ejemplos vamos a usar la siguiente API REST para pruebas:
En este caso en particular de esta API, solo maneja objetos JSON y ya los regresa con format. (indentado)

Continue reading

Algoritmos de Ordenamiento

Standard

Hola a todos, el día de hoy vamos a hablar un poco de métodos de ordenamiento. El conocer este tipo de algoritmos ayuda a mejorar el desempeño de algunas de nuestras aplicaciones. Mucho se ha hablado de este tema dada su importancia, ya que, existe un número considerable de algoritmos de ordenamiento, por lo que en este pequeño tutorial vamos a hablar solo de unos pocos. Así que comencemos.

Selection Sort

La idea principal de este algoritmo se basa en encontrar el mínimo o máximo elemento en el arreglo y ponerlo en la posición correspondiente para un arreglo ordenado. Por ejemplo, dado un arreglo de la forma A={7,5,4,2} que se desea ordenar de manera ascendente (de menor a mayor), lo primero es buscar el mínimo elemento en A, que es 2. Una vez encontrado, lo intercambiamos con la posición del primer elemento que se encuentra en A, es decir 7. Después, buscamos el segundo en el resto A y lo ponemos en la segunda posición y así sucesivamente. Ahora vamos a ver su implementación:

1
2
3
4
5
6
7
8
9
10
11
12
13
void selection_sort (int A[ ], int n) {
 int minimum;        
 for(int i = 0; i < n-1 ; i++)  
 {
   minimum = i ;
   for(int j = i+1; j < n ; j++ ) {
     if(A[ j ] < A[ minimum ])  {         
       minimum = j ;
     }
   }
   swap ( A[ minimum ], A[ i ]) ;
 }
}

Continue reading

Función Intersección para SolidWorks

Standard

Hola! me reporto nuevamente el día de hoy para platicarles una función que no había utilizado y me encanto.

Esta función, es la de intersección. Esta función es muy útil para cuando se realizan piezas que tienen que embonar unos con otros, como la rosca de la tuerca a partir de un tornillo, la tapa de una caja  o una botella y su tapa, en fin. Cuando se requiere que dos piezas embonen y tienen figuras complejas donde se requiere hagan este “arreglo”. Para ejemplo, les muestro un encapsulado que recientemente realizamos para un sensor. El encapsulado se imprimió en una impresora 3D. Por este detalle algunas cosas se adaptaron para evitar problemas en la impresión.

Para iniciar, haré una caja extruyendo un rectángulo desde “planta”, uno que sería el fondo y uno que seria las orillas. Para la orilla en el interior hice un redondeo de las esquinas interiores, esto para evitar errores en la impresión. Más delante les explicaré por qué.

Quedaría de la siguiente manera:

cj1 Continue reading

Protoboard: el primer aliado

Standard

Que tal, me reporto de nuevo con ustedes en este glorioso manantial del saber que cruza fronteras y derriba muros (¡hasta el de trump!). Continuando con algunos datos que me han servido para realizar proyectos como estudiante o como ingeniero (y no morir en el intento).

Esta ocasión retomo un poco el tema de la entrega anterior, ya que la nostalgia invade la oficina.

Abriendo el tema hablaré un poco de una de las herramientas más controversiales cuando estas aprendiendo electrónica como se debe.

Protoboard.

Esta enigmática pieza de plástico y metal acompañará las prácticas de muchos estudiantes y la vida de muchos desarrolladores de electrónica.

¿Por qué un protoboard?

Como se comprende, un circuito necesita conductores y elementos activos y pasivos para realizar la función para la que esta diseñado.  Pero mientras un estudiante adquiere la pericia para realizar el diseño, se necesita conocer los componentes y sus características físicas reales. Así que, necesita conectarlos, pero soldar muchas patitas de metal solo para probar un circuito puede ser una perdida de tiempo. Y si es que al final de la prueba el circuito no funciona y necesita arreglos menores (siempre),  entonces llega este héroe sin capa para ayudar con la labor.

proto1 Continue reading

Foreign Tables en PostgreSQL (postgresql_fwd)

Standard
Hola a todos, recientemente nos encontramos con una situación donde tuvimos la necesidad, donde por orden, se propuso usar diferentes Bases de Datos en PostgreSQL para organizar por estrategia a los diferentes tipos de problemas que se estaban atendiendo.
Supongamos que queremos hacer un análisis de marcas de autos, y queremos dividir un volumen de datos considerable para su extracción y análisis por tipo de datos. Y al final necesitamos poder consultarlos todos dentro de una base de datos integradora.
Para resolver este tipo de problemas nos ayudó la extensión postgres_fdw de PostgreSQL.
Supongamos que tenemos los siguientes objetos:
  • marcas_db. DB Integradora.
  • marca_mercedes_db. DB Mercedes Benz. (pudiera ser más marcas: BMW, Audi, etc.)
    Esta Base de Datos puede tener varias tablas, como ejemplo vamos a crear el mapeo de una tabla.

    • atributos_auto. Tabla de atributos del auto con dos atributos: id y name.

Continue reading

Uso de Planos en elaboración de piezas

Standard

Hola! buen día a todos, en el post del día de hoy, les explicaré una función que es básica, pero no muy fácil de dominar. En la elaboración de piezas surgen diversas formas difíciles de adaptar por problemas con los planos existentes dados por default por el programa, pero lo cierto es que podemos imaginar la figura hecha por capas ocultas mas pequeñas que milimétricas, y estas son adaptables a nuestra necesidad.

Para tener acceso a esas capas tenemos la función “Plano” desde “Geometría de referencia” en la sección de “Operaciones”.

Haré dos figuras de prueba para conocer mejor esta funcionalidad.

Iniciando con el siguiente ejemplo:
bl1 Continue reading

Publicar App de Android

Standard

Hola a todos, en la publicación pasada les compartía acerca del proceso y algunas experiencias para publicar una App de iOS. A continuación les voy a compartir el proceso similar para una App en Android.

Antes de empezar, les comparto un checklist para antes de pensar en publicar tu App, este checklist aplica tanto para Android como para iOS. (algunos)

  • Paso 1: Todo empieza con un App Sólida.
    Es necesario contar con un concepto o base sólida de qué es lo que quieres lograr con tu App, al principio nació con una idea, pero al final debemos de estar seguro que esté cumpliendo con ese objetivo.

    • Consideración 1. Coleccionar Estadísticas de la App.
      Hay varios mecanismos para coleccionar estadísticas de uso, pero es importante el contar con mecanismos de este tipo en tu App.
    • Consideración 2. Protege tu Propiedad Intelectual.
      Selecciona una licencia a la cuál te vas a apegar.
    • Consideración 3. ¿Cómo tus usuarios van a obtener tu App?
      En Android esto se vuelve fundamental: ¿vas a distribuir tu App con un APK o a través de una Store?
    • Consideración 4. Dónde vas a publicar tu App.
      En Android tienes múltiples Stores.
    • Consideración 5. El dinero importa.
      Va a ser sin costo, si buscas monetizar tu App a través de su venta puede afectar que tanto bajen tu aplicación.
    • Consideración 6. Planeando para el futuro.
      Tienes que ir visualizando que nuevas características le vas a agregar a tu App, cuál es el siguiente paso en el desarrollo.

Algunos App Markets

app-markets-2 Continue reading

Enviar una App a la Apple App Store

Standard
De la guía “Acerca de los Flujos de Trabajo para la Distribución de Apps” (About App Distribution Workflows) tomamos la siguiente imagen.
Para poder publicar nuestra App en la App Store, tenemos que tomar en cuenta tres pasos:
  1. Enroll. Darte de alta en el Apple Developer Program.
  2. Develop. Básicamente, desarrollar tu App.
  3. Distribute. El proceso de distribución.

App Distribution Workflow

Es en éste último paso donde me voy a enfocar en esta publicación.

Ahora, aunque el paso de hacer de Pruebas Beta (Beta Test App) y Liberar la App (Release App), son muy interesantes, lo vamos a dejar para una publicación a futuro.
Específicamente voy a hablar de las consideraciones que hay que tomar para Enviar la App (Submit App).
Nota. Dejo el link a las guías oficiales por si quieres revisar estos procesos a detalle.

Continue reading

Manejo de dominios en ambientes de desarrollo

Standard

Hola a todos, espero se encuentren muy bien y preparados para disfrutar sus próximas mini-vacaciones.

En este post abordaremos un tema que a veces nos causa problema al momento de deployar nuestras aplicaciones.

Usualmente como desarrolladores manejamos al menos dos ambientes, uno para producción y otro para desarrollo/pruebas. Cada uno de estos ambientes tiene su objetivo. En desarrollo siempre buscamos desarrollar las nuevas funcionalidades y muchas veces (aunque no recomendable) tareas de testing. En producción buscamos solamente tener versiones estables del desarrollo, características ya probadas y validadas.

Continue reading