¿Qué necesidades específicas te llevaron a desarrollar una API personalizada para WHMCS?

Hoy quiero compartir mi experiencia desarrollando una API personalizada para WHMCS, que permite consultar si un cliente existe en el sistema utilizando un dato de entrada, como su ID de cliente, DNI o CUIT. Este proyecto surgió como parte de una solicitud para integrarse con un script externo que debía consultar esta información a través de una API desde una central telefónica.

El Problema y su Análisis

El requerimiento era bastante simple: validar si un cliente existía en WHMCS y devolver los datos básicos del mismo, como su nombre, apellido y correo electrónico. La idea era permitir que un sistema externo, en este caso una central telefónica, pudiera consultar esta información mediante una solicitud a la API, facilitando la identificación del cliente durante las llamadas.

La Solución: Una API de Consulta de Clientes

Para resolver el problema, desarrollé una API personalizada que responde a las consultas en el siguiente formato JSON:

La API acepta como parámetros el ID de cliente, el DNI o el CUIT, y devuelve una respuesta indicando si el cliente existe y, en caso afirmativo, proporciona sus datos. Si el cliente no es encontrado, la respuesta sería diferente, reflejando que no se obtuvieron resultados.

¿Qué es una API y cómo se consume?

Una API (Interfaz de Programación de Aplicaciones) es un conjunto de funciones y protocolos que permiten la comunicación entre diferentes aplicaciones. En el caso de esta API para WHMCS, se trata de una forma de exponer ciertos datos del sistema (como los clientes) para que puedan ser utilizados por otros servicios externos.

Para consumir la API, puedes utilizar herramientas como Insomnia o Postman, que son populares para probar y realizar solicitudes HTTP de manera sencilla. A continuación, te explico cómo hacerlo:

  1. Configuración de la solicitud: En Postman o Insomnia, crea una nueva solicitud del tipo GET o POST, dependiendo de cómo hayas configurado la API. Especifica la URL de tu endpoint y los parámetros requeridos (ID de cliente, DNI o CUIT).
  2. Autenticación: Si tu API requiere autenticación, configura los encabezados necesarios o el token de acceso.
  3. Ejecuta la solicitud: Al enviar la solicitud, la herramienta te mostrará la respuesta en formato JSON, permitiéndote verificar si la API responde correctamente con la información del cliente.

Todo esto tuve que documentarlo explicando un poco los parámetros necesarios, proporcionando autenticación necesaria, y explicando el funcionamiento.
Pueden encontrar la documentación si les interesa en mi cuenta de hithub.

Conclusión

Crear esta API me permitió reforzar el concepto de cómo funciona una API y cómo integrarla con sistemas externos. Aunque era una funcionalidad sencilla, es un buen ejemplo de cómo podemos exponer información de manera segura y estructurada, permitiendo que otras aplicaciones consuman los datos necesarios para operar.

¿Qué te motivó a desarrollar tu propio generador de códigos de barras en lugar de usar una librería externa?

Hace unas semanas, me encontré con problemas en la integración de una API externa que generaba códigos de barras para facturas en un sistema de cobros de una empresa. Cada actualización o modificación de esta API traía inconvenientes a la hora de realizar los cobros, lo que me llevó a buscar una solución alternativa para evitar problemas inesperados.

Decidí investigar y crear mi propio generador de códigos de barras, de forma que funcionara en mi servidor y no dependiera de servicios de terceros. Así, descubrí la biblioteca PICQER, que permite generar códigos de barras de manera fácil y rápida en PHP.

¿Qué es PICQER?

PICQER es una biblioteca en PHP que facilita la generación de códigos de barras. Es compatible con distintos formatos de códigos y se puede implementar en tu propio servidor, evitando depender de servicios externos.

Al probarla, me di cuenta de que los códigos de barras generados son detectados muy rápidamente por los escáneres, lo cual es ideal para aplicaciones que requieren rapidez y precisión.

Ventajas de Usar PICQER

  1. Evitas Dependencias Externas: Al levantar el generador en tu servidor, eliminas el riesgo de que un servicio de terceros cause problemas inesperados.
  2. Control Total: Puedes personalizar la generación de códigos y su presentación según las necesidades de tu proyecto.
  3. Fácil Implementación: La biblioteca es sencilla de usar y viene con ejemplos para facilitar su integración.

Ejemplo de Implementación

Aquí dejo un ejemplo básico de cómo implementar PICQER en PHP para generar un código de barras:

<?php
require 'vendor/autoload.php';

use Picqer\Barcode\BarcodeGeneratorHTML;

$generator = new BarcodeGeneratorHTML();
$barcodeNumber = isset($_GET['number']) ? $_GET['number'] : '1234567891011121314151617181920';

// Generar el código de barras en formato HTML
echo $generator->getBarcode($barcodeNumber, $generator::TYPE_CODE_128);
echo '<p>' . $barcodeNumber . '</p>';
?>

Puedes probar este ejemplo en acción en mi sitio web: Generador de Código de Barras.

Cómo Integrarlo en tu Proyecto

  1. Instalación de la Biblioteca PICQER: Utiliza Composer para instalar la biblioteca en tu proyecto:
composer require picqer/php-barcode-generator

2. Configura el Código de Generación: Puedes adaptar el ejemplo anterior para integrarlo en cualquier aplicación PHP.

3. Personalización del Código de Barras: La biblioteca ofrece varias opciones para cambiar el tipo de código de barras (Code 128, EAN, etc.) y ajustar el formato.

Implementar tu propio generador de códigos de barras usando una biblioteca como PICQER es una excelente alternativa para evitar las dependencias de servicios externos que pueden cambiar sin previo aviso. La biblioteca es sencilla de usar y proporciona la flexibilidad necesaria para adaptarse a distintos proyectos.
Mi Bardcode:

https://sergiorios.com.ar/barcode/bardcode.php?number=1234567891011121314151617181920

¡Espero que esto te sea útil! Si tienes alguna experiencia similar o algún comentario, no dudes en compartirlo.

¿Cuáles fueron los pasos principales que seguiste para integrar la API de WordPress y mostrar las últimas publicaciones?

En esta publicación, quiero compartir una funcionalidad que recientemente me tocó agregar en el sitio web a una empresa, y que también he implementado en mi propia web. La idea es integrar la API de WordPress en tu sitio web o portafolio para mostrar las últimas publicaciones de tu blog. Es una funcionalidad interesante que puede añadir valor a tu perfil profesional al mantenerlo actualizado con tu contenido más reciente.

Voy a explicar cómo lo hice utilizando Laravel, un framework de PHP que facilita mucho el desarrollo web. A continuación, les muestro el código que usé para obtener las publicaciones de un blog de WordPress y mostrarlas en la web.

Paso 1: Obtener las Publicaciones del Blog

Primero, creamos una función en Laravel para obtener las publicaciones. La API de WordPress ofrece un endpoint para obtener los posts, que es: https://[URL DE TU BLOG]/wp-json/wp/v2/posts. Vamos a solicitar las últimas 3 publicaciones, pero este número puede ajustarse según tus necesidades.

public function getBlogPosts()
{
    // URL para obtener las publicaciones
    $url = 'https://[URL DE TU BLOG]/wp-json/wp/v2/posts?per_page=3';

    // Hacer la solicitud cURL para obtener las publicaciones
    $posts = $this->makeCurlRequest($url);

    // Si hubo un error en la solicitud
    if (!$posts) {
        return view('index', ['publicaciones' => []]);
    }

    // Arreglo donde guardaremos las publicaciones con las imágenes
    $postsWithImages = [];

    // Recorrer las publicaciones para obtener la imagen destacada
    foreach ($posts as $post) {
        $featuredMediaId = $post['featured_media'];

        // Si la publicación tiene imagen destacada, hacer otra solicitud para obtener los detalles de la imagen
        if ($featuredMediaId) {
            $mediaUrl = "https://[URL DE TU BLOG]/wp-json/wp/v2/media/$featuredMediaId";
            $mediaDetails = $this->makeCurlRequest($mediaUrl);

            if ($mediaDetails && isset($mediaDetails['media_details']['sizes']['full']['source_url'])) {
                $post['featured_image_url'] = $mediaDetails['media_details']['sizes']['full']['source_url'];
            } else {
                $post['featured_image_url'] = null;
            }
        } else {
            $post['featured_image_url'] = null;
        }

        // Agregar la publicación con su imagen al arreglo
        $postsWithImages[] = $post;
    }

    // Pasar las publicaciones con las imágenes a la vista
    return view('index', [
        'publicaciones' => $postsWithImages,
    ]);
}

Paso 2: Configurar la Función makeCurlRequest

Para realizar las solicitudes a la API de WordPress, utilizamos una función llamada makeCurlRequest, que se encarga de hacer la solicitud cURL y devolver los datos obtenidos. Asegúrate de tenerla implementada en tu código:

private function makeCurlRequest($url)
    {
        // Inicializar cURL
        $ch = curl_init();

        // Configurar opciones de cURL
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);  

        // Ejecutar la solicitud
        $response = curl_exec($ch);

        // Manejar errores de cURL
        if (curl_errno($ch)) {
            curl_close($ch);
            return false;
        }

        // Cerrar cURL
        curl_close($ch);

        // Decodificar la respuesta JSON
        return json_decode($response, true);
    }

Paso 3: Actualizar la Vista para Mostrar las Publicaciones

Finalmente, debes actualizar la vista para mostrar las publicaciones con los títulos, extractos y, si es posible, las imágenes destacadas. El siguiente código es un ejemplo básico de cómo hacerlo en Blade, la plantilla de Laravel:

<!-- blog dinamico wp -->
        <div class="container py-5">
            <h1 class="text-center mb-4">Últimas Publicaciones de Mi Blog</h1>

            @if(isset($publicaciones) && count($publicaciones) > 0)
                <div class="row">
                    @foreach($publicaciones as $publicacion)
                        <div class="col-md-4 mb-4">
                            <div class="card shadow-sm h-100">
                                <a href="#" target="_blank">
                                    @if (isset($publicacion['featured_image_url']))
                                        <img src="{{ $publicacion['featured_image_url'] }}"
                                            class="card-img-top img-fluid"
                                            alt="Imagen destacada del post"
                                            style="max-height: 200px; object-fit: cover;">
                                    @else
                                        <img src="/ruta/a/imagen/por_defecto.jpg"
                                            class="card-img-top img-fluid"
                                            alt="Imagen por defecto"
                                            style="max-height: 200px; object-fit: cover;">
                                    @endif
                                </a>
                                <div class="card-body">
                                    <h5 class="card-title">
                                        <a href="{{ $publicacion['link'] }}" target="_blank" class="text-dark text-decoration-none">{{ $publicacion['title']['rendered'] }}</a>
                                    </h5>
                                    <p class="card-text">{{ Str::limit(strip_tags($publicacion['excerpt']['rendered']), 150) }}</p>
                                </div>
                                <div class="card-footer bg-transparent text-end">
                                    <a href="{{ $publicacion['link'] }}" class="btn btn-primary btn-sm" target="_blank">Leer más</a>
                                </div>
                            </div>
                        </div>
                    @endforeach

                </div>
            @else
                <p class="text-center">No se encontraron publicaciones.</p>
            @endif
        </div>
        </section>

Consideraciones Adicionales

  • Reemplaza [URL DE TU BLOG] por la URL real de tu blog.
  • Si las publicaciones no tienen imágenes destacadas, la propiedad featured_media será 0. Puedes manejar este caso mostrando una imagen predeterminada o simplemente omitiendo la imagen.
  • Puedes personalizar la cantidad de publicaciones a mostrar cambiando el parámetro per_page en la URL.

Espero que esta guía te sea de utilidad si alguna vez necesitas integrar publicaciones de un blog de WordPress en tu sitio web. ¡No dudes en experimentar con la API de WordPress y adaptarla a tus necesidades!

¿Qué desafíos enfrentaste al trabajar con WHMCS por primera vez?

En esta publicación quiero compartirles mi primera experiencia trabajando con WHMCS y el uso del ORM Eloquent en PHP. Fue un proyecto desafiante pero a la vez muy enriquecedor, ya que me permitió aprender nuevas tecnologías y poner en práctica mis habilidades de desarrollo.

¿Qué es WHMCS?

WHMCS (Web Host Manager Complete Solution) es una plataforma de automatización de facturación y gestión para empresas de hosting. Permite a las empresas gestionar clientes, servicios, facturación, soporte técnico, y más, en un solo lugar. Una de sus principales ventajas es la flexibilidad para personalizar funcionalidades mediante la creación de módulos y extensiones, lo que facilita la integración con otros sistemas o la implementación de características específicas.

¿Qué es el ORM Eloquent?

El ORM (Object-Relational Mapping) Eloquent es una herramienta que forma parte del framework Laravel para trabajar con bases de datos. Facilita la interacción con la base de datos al permitir manipular datos utilizando clases y objetos en lugar de consultas SQL tradicionales. Esto simplifica muchas tareas de desarrollo y hace que el código sea más legible y fácil de mantener.

El Desafío: Desarrollar un Módulo de Retención de Clientes

Mi primera tarea con WHMCS consistió en desarrollar un módulo para la retención de clientes. La idea principal del módulo era ayudar a los operadores a contactar a los clientes que solicitaban la baja de un servicio y ofrecerles un descuento o incentivos para que reconsideraran su decisión.

Características del Módulo:

  1. Detección de Solicitudes de Baja: El módulo debía detectar cuando un cliente solicitaba la cancelación de un servicio.
  2. Asignación de Operador: Se asignaba un operador para contactar al cliente de forma proactiva.
  3. Ofertas de Retención: Se presentaban distintas opciones, como descuentos o mejoras en el servicio, para motivar al cliente a quedarse.
  4. Registro de Seguimiento: El módulo registraba las acciones del operador, incluyendo las ofertas realizadas y la respuesta del cliente.

Desarrollo del Módulo con PHP y Eloquent

Al trabajar en este proyecto, utilicé el ORM Eloquent para interactuar con la base de datos de WHMCS. La principal ventaja fue la capacidad de definir modelos y relaciones que facilitaban el acceso a la información de los clientes y sus servicios de manera intuitiva. Fue una experiencia interesante, ya que fue la primera vez que implementaba un ORM en un entorno real, y me permitió ver la potencia de usar Eloquent para escribir código limpio y estructurado.

Retos y Aprendizajes

El principal reto fue familiarizarme con el ecosistema de WHMCS y su estructura de datos. Al ser una plataforma bastante específica para empresas de hosting, su curva de aprendizaje puede ser pronunciada. Sin embargo, trabajar con Eloquent ayudó a simplificar el manejo de la base de datos, lo que hizo que el proceso de desarrollo fuera más fluido.

Resultado Final

El módulo de retención de clientes quedó funcional y permitió mejorar el proceso de atención al cliente, brindando a los operadores una herramienta útil para mantener la relación con los clientes y reducir la tasa de cancelaciones.

Conclusión

Desarrollar mi primer módulo para WHMCS fue una experiencia muy valiosa. Me permitió no solo aprender a trabajar con esta plataforma, sino también mejorar mis habilidades en PHP y en el uso de Eloquent como ORM. Si estás comenzando con WHMCS, te animo a explorar las posibilidades que ofrece la creación de módulos personalizados. Es una excelente manera de aprender y a la vez aportar valor a tu equipo o clientes.

¿Qué te motivó a pasar de crear sitios web estáticos a sitios web dinámicos con WordPress?

En los últimos años, después de haber trabajado en varios proyectos de sitios web estáticos para clientes, sentí la necesidad de explorar más allá del desarrollo básico y agregar funcionalidades que permitieran crear sitios autoadministrables o tipo blog. Sabía que, por la falta de tiempo, necesitaba encontrar una solución que facilitara la gestión y el mantenimiento. Fue así como me encontré con WordPress, una plataforma que, en ese momento, me permitió ofrecer soluciones económicas y rápidas para mis clientes.

WordPress: Ventajas y Desventajas

Para aquellos que no están familiarizados, WordPress es un sistema de gestión de contenidos (CMS) muy popular que permite crear y administrar sitios web sin necesidad de programar desde cero. Ofrece una gran variedad de temas y plugins para personalizar los sitios y agregar funcionalidades con facilidad.

WordPress me ayudó a cumplir con los proyectos de mis clientes sin comprometer otros trabajos que tenía en paralelo, como el soporte tecnológico, la administración de servidores y la gestión de mi negocio de productos y servicios informáticos. Sin embargo, trabajar exclusivamente con WordPress me dejó un tiempo sin programar, algo que lamento porque perdí práctica en el código, aunque fue la mejor decisión que pude tomar en ese momento para no rechazar proyectos.

¿Qué es un CRM?

Un CRM (Customer Relationship Management) es una herramienta que ayuda a las empresas a gestionar las relaciones con sus clientes, organizar la información de contactos, y automatizar tareas relacionadas con la atención y el seguimiento de los clientes. En el contexto de desarrollo web, un CRM puede integrarse para manejar mejor la interacción con los usuarios del sitio o para personalizar contenidos.

Un Proyecto Especial: Inventario de Meteoritos de Campo del Cielo

Uno de los proyectos más importantes en los que he trabajado fue la creación del inventario de meteoritos de Campo del Cielo, un área ubicada en la región del Gran Chaco, Argentina, conocida por su histórico campo de meteoritos. Allí se encuentran fragmentos metálicos provenientes de un meteorito que impactó hace miles de años, lo que lo convierte en un lugar de gran interés científico y turístico.

El proyecto consistió en crear una base de datos que incluyera aproximadamente 600 meteoritos, cada uno con su nombre, foto o imagen, y una funcionalidad que permitiera visualizar y descargar los objetos en 3D. Fue una experiencia desafiante y enriquecedora que me permitió aprender mucho sobre JSON y la integración de bases de datos.

Desafíos y Aprendizajes

A lo largo de la realización de este proyecto, tuve que investigar y adaptar funcionalidades para que el inventario de meteoritos fuera accesible y fácil de usar. Trabajé en el diseño del sitio web, la flexibilidad del CMS para manejar los datos, y en la incorporación de objetos en 3D, lo que fue una experiencia técnica nueva y fascinante.

Invito a todos a visitar el inventario y explorar los meteoritos en 3D; ha sido una gran contribución para la comunidad de Chaco, y estoy agradecido de haber participado en algo tan valioso que seguramente perdurará por muchos años.

Conclusión

Estos proyectos no solo me han permitido desarrollar habilidades técnicas, sino también aprender a trabajar con clientes y a gestionar múltiples responsabilidades. Han sido fundamentales en mi crecimiento profesional, y estoy emocionado por continuar explorando nuevos desafíos en el desarrollo web.

¿Cómo fueron tus primeros pasos en el diseño y desarrollo web?

Cuando empecé en el mundo del desarrollo web, trabajaba en un servicio informático, y administraba las redes y servidores en un colegio. Mi jornada comenzaba a las 8 de la mañana y terminaba a las 8 de la noche,salia una hora antes para poder asistir a clases de programación web, seguridad informática y administración de sistemas. A pesar de lo agotador, encontraba los fines de semana perfectos para aplicar todo lo que iba aprendiendo.

Mi Primer Proyecto Web: Un Sitio para un Estudio Jurídico

La oportunidad de crear mi primer sitio web completo llegó cuando un cliente del servicio informático me pidió que desarrollara una página para su estudio jurídico, si me animaba. Fue un desafío que me permitió entender los pasos necesarios para llevar a cabo un proyecto web desde cero: el diseño, la accesibilidad y la importancia de definir el contenido. Me di cuenta de que muchos clientes no sabían qué información incluir, lo que me llevó a guiarlos y brindarles apoyo para estructurar el contenido.

Comencé con HTML, CSS y JavaScript, utilizando lo que sabía para dar vida al sitio. Recuerdo haber programado efectos en los textos con JavaScript para hacer la página más entretenida y, en esa época, era común agregar música de fondo, algo que también me solicitaron. Aunque ahora esa práctica ha quedado en el pasado, en aquel momento era lo que se estilaba para hacer un sitio más “interactivo”. El término “full stack” aún no existía, estamos hablando del año 2011/2012 mas o menos, y quienes hacíamos de todo en el desarrollo web éramos conocidos simplemente como “webmasters”. Yo aspiraba a ser uno de ellos.

La Satisfacción de Programar

Uno de los momentos más emocionantes fue programar el formulario de contacto en PHP. Fue un desafío que me ayudó a mejorar mis habilidades en la lógica de programación y en el manejo de formularios. Al ver el sitio terminado, tanto el cliente como yo estábamos encantados con el resultado, lo que me motivó a seguir avanzando en mi aprendizaje.

Actualizando el Sitio del Servicio Informático

Gracias a esa primera experiencia, tuve la oportunidad de trabajar en un proyecto interno para el servicio informático donde trabajaba. El sitio web de la empresa estaba desactualizado y necesitaba un cambio urgente. Me dediqué a renovarlo, aplicando todo lo que había aprendido en mis estudios y en el proyecto del estudio jurídico. Poco a poco, fui mejorando el diseño, la estructura y el contenido, hasta lograr una versión actualizada del sitio que se ajustaba a las necesidades de la empresa.

Conclusión

Mis primeros proyectos web fueron fundamentales para comprender no solo la parte técnica del desarrollo, sino también la importancia de interactuar con los clientes y entender sus necesidades. Desde entonces, cada proyecto ha sido una oportunidad para seguir aprendiendo y mejorando en este apasionante mundo del desarrollo web.

¿Cómo fueron tus primeros pasos en el aprendizaje de tecnologías de la información?

Después de unos años en el mundo de los videos juegos offline como el Counter strike, Age of Empires, Los sims, empecé a meterme al mundo de los juegos Online 2D por recomendaciones de un amigo, un juego tipo modo Argentum Online, era un vicio, un juego de rol que hay que ir superando niveles, donde podes jugar e interactuar con tus amigos hacer equipos y conocer gente nueva en ese mundo, dedicaba mucho tiempo de mi vida, recuerdo con 13 años empecé a intentar utilizar mis conocimientos técnicos adquiridos todos esos años, para distintos fines de los cuales me podría beneficiar como cuando asistía a los cybers con amigos para jugar CS, investigaba y aprendía sobre redes en la red de los cybers y aprendía sobre los software de gestión de cyber y su seguridad, también los compartidos y obviamente como hacerme de algunos juegos y llevarlos a casa.

Cuando se me dio la idea de aprender a programar sitios webs, y clonar sitios para hacer phishing que era la modalidad de robo de contraseñas en ese momento ya que no se les daban mucha importancia a los protocolos de seguridad, yo solo intentaba hacerme de algunas cuentas en el juego. Así empecé a introducirme al mundo del hack y crack. Lo hice por un tiempo creándome un Nick anónimo, introduciéndome en foros, siendo activo en distintas comunidades hackers del momento, pude aprender mucho sobre phishing, troyanos, gusanos, exploits, y todo lo referido al mundo del hacking del momento. Un día jugando vi que habían hackeado el servidor que jugaba, y me contacte con la persona que lo hizo, me ayudo a entender muchos conceptos de redes, servidores incluso bases de datos los cuales en ese momento el servidor tenia fallas.

En ese momento se me ocurrió la idea de levantar mi propio juego online 2d modo Argentum, ya que el código del juego lo habían liberado. El juego estaba programado en visual Basic 6. Lo recuerdo que había que adaptarlo para hacerlo funcionar y tocar un poco de código que obviamente la lógica no entendía mucho, pero decidí de todas formas levantar el juego en mi PC como servidor abriendo los puertos de mi modem.

Así fue como empecé en el mundo de las redes servidores y sitios webs, sin saber nada de programación, pude levantar mi primer juego Online con amigos, ¡y fue un éxito! A la semana contábamos con 40 usuarios online de forma simultanea y a las dos semanas llegamos a los 60, obviamente que algo andaba mal ya que empezaba a fallar el juego o se volvía lento y no entendíamos por qué.

Al mes de abrir el juego mi “servidor” dijo basta. Volví a dañar mi pc esta vez nuevamente la fuente de alimentación, porque no apagaba nunca mi computadora y no estaba pensada para funcionar como servidor. Me sirvió de experiencia y para ir aprendiendo sobre mis errores. El juego me ayudo a introducirme de lleno al mundo del hacking, bases de datos, redes y servidores.

¿Qué motivaciones te llevaron a especializarte en esta área?

Después de un tiempo de estar aprendiendo con mi computadora MS DOS empecé a incursionar el mundo de los videos juegos que venían para poder instalarse con disquetes.

Recuerdo que al estar tanto tiempo encendida la computadora se daño la fuente de alimentación, la cual fue una buena noticia ya era hora de actualizar la pc para mi gusto, en el año 1998 ya había salido el Windows 98, con entorno grafico tres años antes yo tuve la oportunidad de conocer el Windows 95 en la casa de un familiar, cuando tuve el primer contacto con el mouse en el entorno grafico de color casi me explota la cabeza eso si era magia no podía entender cómo funcionaba ese mundo visual nuevo en la computadora. Después de unos años y de tanto insistir, después de cumplir su ciclo mi pc “vieja” cambiamos a un pc con Windows 98 y no solo llego con sistema operativo nuevo el hardware era mucho mas moderno, y sin hablar de la cantidad de programas y juegos que pude instalar sin contar la cantidad de archivos y músicas que llegamos a manejar ya que contaba con la experiencia de mi hermano que en ese momento ya empezaba con la idea de ser DJ.

Aprendí a instalar cualquier software, drivers, juegos, hacer “trucos” en las instalaciones, a trabajar con office y todo lo que el sistema operativo nuevo podía ofrecer, estaba fascinado, pero faltaba algo… Ya que empezaba a tener experiencia investigando y aprendiendo con encarta necesitaba el acceso a internet para poder seguir aprendiendo o eso pensaba. Con la llegada de internet, mi mundo se expandió muchísimo, tanto así que la ambición de aprender y probar cosas nuevas me llevó a “Dañar” mi computadora por segunda vez, y esta vez no era por la fuente de alimentación, sino que con el tema de las descargas y ganas de aprender” me hackearon, así es mi primer virus informático cuando intentaba descargar un juego y cursos para aprender sobre informática.

Tuvimos que llamar un técnico informático para que haga una “limpieza” a mi computadora. Cuando vi ese técnico llegar y solucionar el problema, entendí que quería hacer el resto de mi vida, lo principal en que me quería convertir. Estaba fascinado no solo por la solución del problema sino por cómo me infectaron aprendí un poco sobre el mundo del hacking, las malas intenciones en el mundo de internet. Quería aprender mas y mas y no tener que volver a depender de otra persona para solucionar los problemas de mi computadora. Fue así donde descubrí lo que quería hacer el resto de mi vida “solucionar problemas informáticos” y mi pasión por la seguridad informática. Ahí empezó todo con tan solo 7 años de edad.

¿Cómo descubriste tu interés por la informática?

Mi primer contacto con el mundo de la informática ocurrió a una edad sorprendentemente temprana: ¡tenía solo 3 años! En casa, tuvimos la suerte de tener una computadora de escritorio, de esas antiguas que corrían en MS-DOS 1.0, sin un entorno gráfico.

Recuerdo que mi papá me enseño a usar la terminal. No había iconos ni entorno grafico solo la terminal y se ejecutaban los programas desde la línea de comandos. Aprendí a usar Calc, y Notepad lo que fue una revelación para mi con pocos años de edad. Aprender a usar una computadora que dependía solo de la terminal me ayudo a ser metódico y curioso, algo que sin dudas me ayudo en mi carrera profesional.

Hace poco navegando en internet encontré un simulador de sistemas operativos antiguos. Fue lindo revivir viejos recuerdos y darme cuenta de lo mucho que el mundo de la informática ha avanzado desde entonces. Si quieres experimentar un poco de esa nostalgia te dejo el enlace:
Clic Aqui!


Mirando hacia atrás me doy cuenta de lo afortunado que fui al tener acceso a la tecnología desde muy chico. Esa primera experiencia no solo despertó mi interés en las computadoras, sino que también sembró las bases de mi carrera futura, donde la curiosidad y la dedicación se convirtieron pilares fundamentales para mi aprendizaje.