lunes, 5 de mayo de 2025

Soluciones para Mensajeria por Whatsapp.... Cuales ?

En los ultimos 10 años whatsapp se ha vuelto una herramienta muy importante en los negocios, en las comunicaciones familiares entre otras actividades, pero cuando queremos implementar en nuestros proyectos un tipo de funcion que envie mensajeria por whatsapp nos da dolor de cabeza, porque no sabemos como o porque lo que encontramos no es lo suficiente para lo que necesitamos pero claro a raiz de todo esto han salido iniciativas pagas y gratis para tener la posibilidad de usar la herramienta para comunicar de forma eficaz.

ahora despues de ese resumen breve les dejo la lista de diferentes alternativas de libre uso, no muestro temas de pago porque no es la idea mas sin embargo tambien les dejare una lista.


  1. https://wwebjs.dev/
  2. https://github.com/EvolutionAPI/evolution-api
  3. https://github.com/WhiskeySockets/Baileys
  4. https://pypi.org/project/whatsapp-python/ (necesita whatsapp cloud api)

1. https://wwebjs.dev/

Una herramienta escrita en nodejs que genera una instancia de whatsapp web con la cual podras interactuar de forma facil y practica.

2. https://github.com/EvolutionAPI/evolution-api

Evolution api desarrollada tambien en nodejs proporciona un esquema mas avanzado para instanciar diferentes whatsapp con cuentas diferentes, esto permite que tener varias lineas atentiendo, al mismo tiempo incluye webhooks y demas.

3.https://github.com/WhiskeySockets/Baileys

Baileys es la libreria para whatsapp web que utiliza evolution api, es basicamente un cliente web para whatsapp web escrito en nodejs y typescript

por mencionar estas, ademas existen muchas alternativas de librerias que permiten interactuar con whatsapp cloud api, pero recuerda que esta ultima requiere apis y tiene un precio acceder a esta.


viernes, 17 de mayo de 2024

Machine Learning : Herramientas para construir modelos de IA para tu proyecto.

Hola, en esta entrega vengo a hablarles sobre un tema interesante, ya que es tendencia todo esto del Machine Learning, pero hay que tener en cuenta que hay algo mas alla de chatGPT, Gemini entre otros, y es como puedo crear mi propio modelo de IA aplicado a mi modelo de negocio o proyecto y es ahi cuando quiero compartirles una serie de herramientas que utilizo para crear estos modelos de IA custom para proyectos.

Primero deberemos tener en cuenta que queremos hacer, como queremos implementarlo entre otras, eso es importante ya ese sera nuestro punto de partida, bueno ahora si a lo que vinimos.


  • Librerias para construir modelos de IA.
  • Librerias para preparacion de datos. 
  • Modelos preconstruidos para ser aplicados.
  • Aprendizaje (Bonus)

sábado, 4 de mayo de 2024

Laravel 101 : Instalando Laravel

Hoy doy inicio a una serie de articulos relacionados con Laravel el framework por excelencia de PHP, bueno al menos el elegido por muchos para desarrollar productos innovadores.

Como primero voy a darle la receta de lo que vamos a hacer. 


  1. Instalar (Xampp, Wamp, etc)
  2. Instalar Composer
  3. Instalar Laravel
  4. Configuración Basica inicial

jueves, 5 de julio de 2018

Especial : Apps Hibridas.


Resultado de imagen para ionic







El mundillo de las apps híbridas ha crecido junto a la potencia de los móviles que utilizamos día a día, antes era complicado entender como funcionaban ahora es mas facil y dependiendo del framework que utilicemos es mas nativo que híbrido.


Quienes son las referencias del mercado ?


Es un una buena pregunta saber quienes lideran el mercado en lo que se refiere a utilización y creación de apps, la lista es bastante interesante pero al final tienen una misma base, pero en general si vas a empezar a trabajar en ambientes híbridos tendrás que fijarte en estos.

  • React Native
  • Ionic Framework
  • Meteor
  • JQuery Mobile
Bueno esos son algunos, estos utilizan un componente adicional Cordova o Phonegap exceptuando ReactNative bueno el utiliza algo llamado ChakraCore que es un motor javascript de Microsoft y es por defecto el motor de Edge, la finalidad de Cordova, Phonegap o ChakraCore es poder interactuar con las apis de los diferentes sistemas operativos móviles. 

No obstante deberán saber que en el mercado existen una gran cantidad de frameworks que se utilizan para el desarrollo móvil híbrido, unas conocidas otras no tanto, pero de esas que no estan como referentes podemos encontrar a Telerik con NativeScript, Monaca, Intel XDK, entre otros.


Y por donde empiezo ?


Si bien debes saber html5, en algunos casos angular, en otros React en general la curva de aprendizaje de estas herramientas son cortas. por lo que con cualquiera puedes aprender rápidamente.





jueves, 21 de junio de 2018

Enviar SMS utilizando Laravel y Amazon SNS

Empezamos primero por saber que es Amazon SNS, este es un servicio que permite enviar notificaciones multicanal, multicarrier etc. nos permite manejar mensajes de texto(sms), notificaciones push(entre varios carriers como gcm, baidu, amazon, etc.) ademas de canales como el email, en si nos permite tener un espectro amplio en lo que se refiere a notificaciones.

Antes de empzar es importante contar con lo siguiente

  • AWS access key ID and secret access key
  • AWS_REGION (default = us-east-1): 
Estos datos se pueden obtener en la consola de aws en la opcion de IAM, donde podemos crear un usuario con sus respctivos permisos en el cual vamos a indicar que puede utilizar SNS.

Despues de tener claro que contamos con lo necesario, procedemos a instalar el SDK de AWS el cual lo integraremos con nuestra app desarrollada en laravel.

miércoles, 20 de junio de 2018

Cloudflare y los problemas de UTF-8



Buenas chicos y chicas, después de tanto tiempo vuelvo a escribir un nuevo post, hoy hablare sobre una experiencia con Cloudflare, como casi todos sabemos es un excelente WAF, DNS, CDN y mucho mas pero como todo en la vida no es infalible y muchas veces tiene una serie de problemas que se generan por su naturaleza.

Bueno todos en la vida hemos utilizado acentos, letras como la ñ, entre otros caracteres que por lo general no suelen estar en el alfabeto americano, para ellos utilizamos la codificación UTF-8 para  que estos puedan ser mostrados en pantalla, sucede que cuando se realizan procesos de cacheo de sitios web lo que se almacena es entregado en html a menos que se le indique lo contrario eso me sucedió con Cloudflare y su servicio de cache y cdn, me puse a buscar a ver a quien mas le había sucedido lo mismo y encontré una solución muy particular.























La primera imagen muestra como se debería ver el response que llega desde el servidor,la segunda muestra el error como tal, para esto es recomendable forzar al sistema a indicar que tipo de codificación se debe utilizar por defecto, por lo que se recomienda lo siguiente.

jueves, 8 de marzo de 2018

Un poco de C# : Condicionales


Los condicionales en C# son muy faciles de utilizar, para ello deberemos tener en cuenta las nociones basicas algoritmicas y aplicarlas al lenguaje. yo no les voy a explicar nociones basicas en este post. depronto me dedico a hacer un pequeño cursillo explicativo de como utilizar C#, por ahora les dejo una muestra de los condicionales.

Utilizando repl.it podemos ver el resultado.


lunes, 8 de septiembre de 2014

El Camino del Developer : Framework vs Toolkit vs Desarrollo Propio.

Belt est un toolkit PHP open source proposant plus de 60 nouvelles fonctions pratiques pour vos développements PHP.


Todo desarrollador de aplicación llega a un punto en el cual le toca tomar una gran decisión, pero que y como hacerlo, cuando decir puedo usar un framework o me quedo con las herramientas desarrolladas..... buena pregunta. vamos a dar un par de puntos para que sean analizados. 

Frameworks : sea cual sea el lenguaje que uses, encontraras un mar de utilidades en un framework en uno mas que en otros todo depende de su grado de madures, pero básicamente son populares por integrar todo lo que necesitas a la mano. Lo malo también es lo bueno de estos, con una arquitectura de código publica o cerrada tendrán problemática de seguridad y el crecimiento desmesurado de archivos, ya tendrás que pensar en mas que un servicio shared de hosting para entrar a las grandes ligas del consumo, al ser publicas muchas personas revisaran este código y lo mejoraran pero otras lo dañaran o crearan código para dañarlo... en fin es una buena opción para estandarizar tu proyecto.


Toolkit Propio : de cierto modo no hay nada como lo que uno a desarrollado, la posibilidad de ver crecer lo que has codeado es algo sin competencia, vemos que el grado de madures depende del grado de madures del desarrollador y puedes incluir todo aquello que necesitemos.... una arquitectura basada en tus observaciones permitirá no fallar donde los frameworks han fallado que es su mayoría es la velocidad de respuesta.

teniendo todo esto en cuenta es tu deber tomar la mejor decisión dependiendo de lo que creas conveniente para tu proyecto.




miércoles, 6 de agosto de 2014

El Camino del Developer : Tuberias en Windows usando PHP. (Administrador de Tareas)

Hola amigos alguna vez se han preguntado como acceder a la informacion que se encuentra en el taskmanager de Windows solo para saber si algo esta funcionando mal, bueno y ahora hacerlo desde tu web con PHP seria mejor. bueno mira  revisando mi biblioteca de codigos de esos que hace años tengo guardados me encontre con este pedacillo de codigo que permite revisar los procesos activos de tu servidor. lo he probado en mi laptop con Win7 y en un Servidor con WinS2012 y ha funcionado de maravilla espero les sirva de algo en su proyecto.


viernes, 18 de julio de 2014

El Camino del Developer : Trabajando con el Campo datetine-local

Hola amigossss. jejeje hoy les vengo a traer un post de los muchos que llegaran a los que se les titula el Camino del Developer. jajaja. hoy hablando del campo datetime-local de HTML5 que bastante interesante es pero que hay que tener mucho cuidado y atención y saber uno que otro truco cuando lo utilizamos. 

Bueno sin mas palabras vamos al grano, el campo de type datetime-local nos renderizara una caja muy parecida a un datetime-picker de esos bonitos como los que tiene JQuery UI u otros frameworks, solo que este no tiene tanto skin pero como es HTML5 le podemos hacer lo que queramos con CSS. plasmarlo en tu form no es complicado solo deberás montar un input de la siguiente forma.

y lo que a continuación les clocare son los posibles atributos que este objeto/complemento o como le quieras llamar puede utilizar.


  •  global attributes
  • name
  • disabled
  • form
  • type
  • autocomplete
  • autofocus
  • list
  • min
  • max
  • step
  • readonly
  • requred
  • value
Si desean saber mas sobre estos atributos les recomiendo este link de la W3C. Link W3C

Ahora les dejo un Hack.... no no creo que sea un Hack mas bien es un truco porque a la hora de colocar la fecha que hemos guardado en la DB nos vamos a volver loco buscando en google una solución. resulta ser que para colocar la fecha en el campo desde JS ya sea JQuery o cualquier otro framework el contenido que deseamos mostrar en este caso la fecha almacenada debe ser un String,,, Ouchh!! si un String pero carajos es un campo date jajaja pero tranquilos. la solución es simple pueden hacerla de esta forma.

con JQuery 

$('elcampo').val(objson.toString());

Listo con esa linea pasando el dato que has traído desde tu DB en formato JSON podrás colocar de nuevo la fecha desde JS. espero esto sea de gran ayuda para ti cuando estés revisando el tema de los datetime-local. 

no se te olvide darle un +1 y compartir este articulo en las redes sociales :D

miércoles, 25 de junio de 2014

Moviendo bases de datos IBM DB2 en Distros Linux.


Hola amigos en este pequeño pero sustancioso articulo les voy a comentar como hacer una copia hacia otro servidor de una base de datos db2, esta información llega a ustedes gracias a ....... XD bueno en fin en mi labor diaria me he topado con el tema de como carajos muevo datos desde una db2 a otra db2 claro teniendo en cuenta lo siguiente la base de datos de destino debe ser igual es decir misma versión. en nuestro caso la base de datos esta idéntica gracias al poder de vConverter.

Pasemos a lo bueno, después de buscar y buscar por internet encontré este hermoso comando para db2 que permite hacer eso que nosotros necesitamos, este se conoce como db2move y funciona de la siguiente forma.


primero que todo estamos sobre un entorno linux. digamos redhat.


  1. Buscamos una unidad donde tengamos suficiente espacio para albergar los datos de la copia de manera temporal.
  2. Creamos una carpeta aja con el comando mkdir.
  3. Accedemos a la carpeta que habéis creado como no con el comando cd carpetanueva
  4. Estando en vuestra carpeta no tan solo basta con ejecutar db2move nombredeladb export
  5. Esto iniciara el volcado de la db a archivos con extencion PC/IXF, con los cuales vas a realizar lo que viene en el siguiente punto.
  6. Tomas la carpeta que habéis creado y la comprimes en zip, tar.gz, tar, rar o en lo que te parezca el tema es poder descargar esta información a un pc. 
  7. Luego subela al servidor de destino, descomprimirla y accede a la carpeta, para luego hacer lo siguiente.
  8. Ejecuta el comando db2move nombredeladb import y listo empezara a importar los datos que habeis copiado desde la otra db2.
Tengan en cuenta que este ejemplo mostrado se da cumpliendo varias condiciones, 
  1. Es una copia de una db que esta un una maquina fisica hacia una maquina virtual.
  2. Las dos db2 son idénticas, gracias a un vConverter.
Bueno es simple al menos el uso en este ejemplo pero si desean ver todo lo que pueden hacer con el comando db2move les recomiendo el siguiente enlace.


Algo simple pero que depronto no sabes que existe.


jueves, 10 de abril de 2014

Un Storage de Objetos en Javascript.

En mi diario labor como desarrollador llegue a un punto donde se complicaba la vida con algunos componentes en jQuery debido a que debia invocarlos en varias partes de mi codigo, despues de tanto pensar me pregunte y si puedo hacer un storage de estos complementos en js y pues esto fue lo que nacio un storage de objetos en javascript, actualmente lo estoy utilizando para ordenar unas datatables pero puede almacenar muchas otras cosas mas.



// DataTables Global Storage
var $dtstorage = function(){
  this.storage = {};

  this.add = function(name,$dt){
    this.storage[name] = $dt;
  }

  this.get = function(name){
     for(i in this.storage){
       if(i == name){
         return this.storage[i];
       }
     }      
  }

}

// Instancing $dtstorage
$dstore = new $dtstorage;

lunes, 10 de marzo de 2014

fixCentral : Openfire Classes Home not found



Hola amigos mios, hoy llegando a la oficina me encuentro con un interesante pero tedioso problema el servidor de mensajeria interna en este caso Openfire se encuentra caido y empezar a revisar porque ha pasado esto, resulta que hace poco actualize a la version 3.9 lo cual es bueno siempre estar actualizado el problema se presento cuando no iniciaba jajaj, en el preciso momento que arranco el servicio e intento acceder al panel de control fuazz me encuentro con que el servicio me pide una nueva instalacion..... pero me muestra el error Openfire Classes Home not found el cual me pone a pensar y que sucedio, revisando documentacion en los foros de openfire encuentro que cuando el sistema tiene reinicios subitos puede que presente un error y se pierdan registros normales, continue mi busqueda en el gran buscador y encontre una solucion la cual es colocar en el ejecutable del openfire una linea que agrega al classpath la ruta del directorio de openfire para su correcto funcionamiento, entonces sin mas palabras la mejor solucion al problema es la siguiente.


Agregar mediante un export la linea /opt/openfire de la siguiente forma export openfireHome=/opt/openfire y si desean dejar de manera automatica pueden colocarlo directamente en el /etc/profile mediante nano o vim o el editor que deseen.

sábado, 18 de enero de 2014

Ganadores del Reto : la unidad informa y escucha, Vive Gobierno Movil.

Ya recuerdo aquel fin de semana lleno de mucho codigo, desarrollo, creatividad, innovacion entre otros aspectos que dejaron como resultado excelente aplicaciones en el mercado, orgullosamente fuimos uno de los equipos ganadores del encuentro CaribeCoders dejo en claro que somos capaces de entendernos, Barranquilla, Cucuta e Ibague se juntaron y crearon una gran herrameinta para la unidad de victimas.

Anuncio Oficial MinTIC

Team CaribeCoders

  • Luis Toscano
  • Johana Salinas
  • Pablo Dorado

Ganadores del Reto - La Unidad Informa y Escucha
Valledupar 2013 - Vive Gobierno Movil
www.caribecoders.com

jueves, 14 de noviembre de 2013

Mentor Yo ?? si Mentor en el #SWBarranquilla. 2013

Hola amigos, en esta edición de Startup Weekend Barranquilla he tenido la oportunidad de pertenecer al staff de Mentores del #SW, como se logra mucho trabajo, actualmente como bien saben soy web developer pero por un gusto sin igual por los negocios y el emprendimiento, es hay cuando en #CampusParty2013 se dio el ofrecimiento, yo sin pensar lo acepte.

Hoy después de grandes vivencias, en #CampusParty2013 donde la idea de negocio no logro el puntaje, en el  #DAL( Desarrollando America Latina ) donde fuimos los ganadores y ahora vemos los frutos y finalmente una gran Convocatoria de Vive Gobierno Móvil donde nos quedamos con uno de los retos, me lleva a compartir experiencias que enriquecen la vida de los developers y de los emprendedores.

Nunca te dejes opacar por los demás y veras que siempre sera lo mejor para ti.... Por eso hoy soy mentor del #SWBarranquilla y mi Compañera de Equipo Joha Salinas es Mentora en el #GoogleDevBus. porque nos hemos ganado las cosas y seguiremos haciéndolo.


jueves, 17 de octubre de 2013

La Travesia del Campusero - #CPCO06



Bueno amigos les cuento un poco sobre mi experiencia campusera, mas de 7 dias en el lugar donde se concentra la mayor cantidad de tecnología del país, el trafico de Internet mas alto entre otros records jaja, bueno todo empezó con la salida, como buen campusero salí con el combo de la #RutaCaribe como bien saben soy de Barranquilla, salimos de la ciudad de Cartagen, continuamos a Monteria y de hay hasta Medellin, un a noche de acampada como nunca, conociendo a personas raras, interesantes y cheveres, ahora todo eso sucedio el sabado y el domingo antes de iniciar el #CPCO06.

Ahora bien llega el lunes, un desorden total, entre discusiones y mal entendidos logramos entrar a la Arena, muy felices todos con algo de hambre empezamos a organizarnos y esperar la gran apertura, pero sorpresa no hay carpas para los campuseros no han llegado y todo se vuelve un despelote, 3 horas para guardar el equipaje y 3 horas mas para sacarlo, que vaaa, para resumirles mi primera noche en el campus la pase en la Arena hay dormi muy sabroso despues de que la organizacion buscara una solucion para los campuseros que no tenian su carpa.

Martes seee llegaron las carpas y todos a organizar, un paseo de maletas por toda la plaza mayor parecia contrabando de maletas jajaja, ya organizados solo quedaba pasarla bien, por mi parte era la primera vez en asistir a un campus party pero tambien la primera vez en ser uno de los expositores asi que a trabajar me toco realizar mi presentacion en tiempo record, ademas de estar participando en dos eventos internos, la maraton de negocios y el nerd challenge de p4s.co en fin todo fue una locura.

Miercoles a un dia de mi presentacion, me tocaba colaborar con otra presentacion trabajamos pleno ese dia y esperar al dia siguiente para mostrarle a los asistentes algo sobre javascript, como tal este fue el dia mas suave del campus.

Jueves hermoso jueves al corazon le tocan la puerta una campusera hermosa.... por cierto muchas mujeres hermosas en medellin..... mucha preparacion para la presentacion y llego el momento de la hora 0, gracias a Dios todo salio muy bien todos quedaron contentos y que mas da, lo mismo de siempre no hacen preguntas pero al final un bulto de gente preguntando cosas.

Viernes si si Colombia si si Caribe..... ese dia salimos a ver el partido de la seleccion por fuera y a conocer un poco de medellin, disfrutamos mucho esa noche.... y mi campusera me seguia enamorando.

Sábado ufff otro día bastante tranquilo, bastante cansado de la parranda de la selección pero con las pilas puestas, para atender todo lo que se veía, no logramos pasar en la maratón de negocios pero hicimos buenos amigos tanto que de hay salio mi participación como mentor en el próximo Startup Weekend Barranquilla, así que me doy por bien servido.

LLego el día final, el domingo desarmando carpas, organizando maletas y preparando todo para volver a mi caribe querido, llegamos a la terminal y pa atrás como el cangrejo, en el caminoo ufff guerrilla que malo perdimos tiempo y llegamos después de pitos a la ciudad de cartagena.... cansados pero con la actitud de haberle cumplido al campus party en su sexta versión.... espero poder volver a asistir.

domingo, 15 de septiembre de 2013

Alistando preparativos para el Campus Party 2013

Bueno ya estoy alistando todo para mi viaje a la sexta edicion del campus party en Colombia y la primera vez que puedo asistir..... y con pie fuerte ya que estare dictando un Taller de JS para dummies o personas que deseen aprender o que estan aprendiendo. asi que con el nuevo laptop, la tablet y el celular me estare paseando por los pasillos de la locacion.

a los interesados estare en la seccion pitagoras el miercoles de 6 a 7 pm asi que todos a aprender. xD.


martes, 10 de septiembre de 2013

Colas de Tarea o Colas de Mensaje

En nuestro actual escenario donde estamos rodeados del famoso "Big Data" requeríamos de una forma de poder controlar el flujo de información que por su gigantesca proporción no podía ser trasladada de un solo golpe, he hay cuando un concepto viejo para mucho llega a solucionar un problema real del nuestro presente, las colas.... si esas ese tipo de estructura de datos que nos enseñaron en la universidad donde el primero que entraba era el primero en salir. 

Bajo el control FIFO podemos tener el control de las tareas o mensajes pueden ser cualquier cosa que podamos enviar a una cola, en la actualidad existen muchas herramientas especializadas en este tipo de trabajos una de ellas RabbitMQ, o Rabbit Message Queue. Cola de Mensajes en español, pero también existe otro tipo de soluciones creadas en diferentes lenguajes de programación como Kestrel que mezcla de Scala, Ruby y Shell lo que permite algo muy avanzado y que actualmente es usado por foursquare, también tenemos ActiveMQ de la Apache Foundation, pero como para mi siempre debemos llegar al origen les mostrare un ejemplo donde implementar una cola de tareas o mensajes en JavaScript útil para cuando necesitemos realizar ejecuciones de funciones que a su ves tienes llamadas Ajax y estas a su ves están obligadas a ser sincronizadas. bueno aquí se los dejo.

    var cola = [];
    cola.push(funcion1);
    cola.push(function2);
    cola.push(function3);
    cola.push(function4);
    cola.push(finalfunction);
    var u = 0;
    var estados = ['function1','function2','function3','function4','finalfunction'];
    while (cola.length > 0) {
     console.log(u+' '+estados[u]);
      (cola.shift())();
     ++u;
    }


Una forma mas sencilla de entender el procedimiento.

sábado, 13 de julio de 2013

Closures o Funciones Anonimas en PHP

Hola amigos hoy un noche de julio les regalo este post donde estaré comentándoles sobre algo llamado Closures o como también son llamadas Funciones Anónimas, comúnmente vistas en lenguajes como javascript y muy bien implementadas en JQuery pero sabían que se pueden utilizar en PHP, bueno yo les enseñare como utilizarlas y sacarles el máximo jugo a este tipo de utilidad.

Basta indicarles que estas solo están disponibles desde la versión 5.3 por lo que los servidores viejitos no funcionara el siguiente ejemplo.


$variable_de_fn_anonima = function(){
  echo 'Ejemplo de una funcion Anonima Sencillo';
};
$variable_de_fn_anonima();
/* Tambie podemos hacerlo de esta forma  un poco mas avanzada* 
echo preg_replace_callback('~-([a-z])~', function ($coincidencia) {
    return 
    return strtoupper($coincidencia[1]);
}, 
}, 'hola-mundo');
?>

dos sencillos ejemplos de como trabajar con este tipo de funciones y como les podrá ayudar, humm bueno eso se lo dejo a la imaginación de cada uno, yo por mi parte lo estoy utilizando en un toolkit sencillo en la parte de un Framework Slim. saludos.

Soluciones para Mensajeria por Whatsapp.... Cuales ?

En los ultimos 10 años whatsapp se ha vuelto una herramienta muy importante en los negocios, en las comunicaciones familiares entre otras ac...