viernes, 3 de enero de 2025

LINUX - Comprimir Archivos (tar.gz)

El comando tar en Linux se usa a menudo para generar ficheros .tar.gz o .tgz. Este comando tiene una gran cantidad de elecciones, sin embargo solo necesita recordar algunas letras para generar instantáneamente archivos con tar. El comando tar además puede extraer los archivos resultantes.

Ademas tenemos otros tipos de compresión que podremos utilizar en Linux, a continuación los comandos mas utilizados para comprimir y descomprimir

Archivos .tar.gz:

Comprimir tar.gz: tar -czvf empaquetado.tar.gz /carpeta/

Descomprimir tar.gz: tar -xzvf archivo.tar.gz

-c: crear archivo.

-z: comprime el archivo con gzip.

-v: Muestra el progreso en el terminal mientras.

-f: Permite especificar el nombre del archivo de salida.

 

Archivos .tar:

Empaquetar: tar -cvf paquete.tar /carpeta/

Desempaquetar: tar -xvf paquete.tar


Archivos .gz:

Comprimir: gzip -9 index.php

Descomprimir: gzip -d index.php.gz


Archivos .zip:

Comprimir: zip archivo.zip carpeta

Descomprimir: unzip archivo.zip


 

jueves, 29 de diciembre de 2022

LARAGON :: Set de herramientas para desarrollar

Laragon es una aplicación de escritorio GUI que proporciona a los desarrolladores un entorno de trabajo como XAMPP, WAMP, etc. 

Leyenda: Interfaz de Laragon Full 5.0


Tiene una edición Full y Portable: 

Full: Apache 2.4, Nginx, MySQL 8, PHP 8, Redis, Memcached, Node.js 18, npm, git

Portable: PHP 5.4, MySQL 5.1, bitmana.

Además, es posible agregar distintas versiones de PHP / MySQL (u otras herramientas de desarrollo) fácilmente más adelante usando "Herramientas > Agregar rápido".

Entre, las ventajas que ofrece Laragon, tenemos: 

  • Compatibilidad con varias versiones de PHP.
  • Soporte terminal CMDER (es el nombre de una consola gratuita para Windows que te permitirá emular el sistema operativo Linux en él).
  • Laragon nos proporciona un sólido sistema de gestión de bases de datos con HeidiSql, opcionalmente puede cambiarlo por phpmyadmin.
  • Activación SSL
  • Elegir Apache, Nginx para su servidor web.
  • Activando Memcache, Redis.
  • Creación rápida de aplicaciones con aplicación GUI.
  • Cambio de puertos de forma muy rápida y sencilla.
  • Compartiendo su sitio local para el público con Ngrok en Laragon
  • Gestión de correo electrónico
  • Potente entorno de desarrollo universal para PHP, Node.js, Python, Java, Go, Ruby. Es rápido, liviano, fácil de usar y fácil de extender.
Para mayor información, revisar en https://laragon.org.

Espero les sea de mucha ayuda.

Saludos,

Wijoata ;-)


jueves, 30 de diciembre de 2021

Sublime Merge - Excelente herramienta para trabajar con GIT

SublimeMerge
Sublime Merge es muy, muy rápido. Además, combina el motor de UI de texto sublime con una implementación Git from-scratch. Y como cliente de Git, ofrece un conjunto completo de características. 

Entre los más importantes están la herramienta de fusión incorporada y la funcionalidad de búsqueda avanzada. Muy práctica para gestionar múltiples repositorios. 

Tiene una versión Gratuita y Comercial. La versión gratuita me basta y sobra para trabajar en proyectos de desarrollo.

Así mismo, esta disponible para Linux, Windows y Mac.

Características: 

  • Herramienta de fusión integrada de tres vías,
  • Diferencias de lado a lado,
  • Búsqueda de gran alcance,
  • Resaltado de sintaxis.
La documentación disponible esta en Inglés, para los que recién inician: https://www.sublimemerge.com/docs/getting_started y para mayor alcance: https://www.sublimemerge.com/docs

La pueden descargar desde: https://www.sublimemerge.com/download

¡Recomendada!

Saludos, 

viernes, 22 de noviembre de 2019

Leer archivos de gran tamaño (GB ó MB en Windows)

Unos de los problemas frecuentes cuando tenemos que trabajar con archivos de texto plano de gran tamaño (por ejemplo mayor a: 300MB, en mi caso estuve trabajando con archivos de 3GB) es el poder buscar y editar la información dentro de estos archivos. Pues necesitamos abrirlos (con algún editor de texto como Block de Notas, Sublime Text, etc.) para poder ver toda la información del archivo y trabajar con ella.

Los editores de texto normales (Block de Notas, Sublime Text, etc.) cargan toda la información del archivo en memoria, por lo que se toman su tiempo en abrirlo; es más, es posible que se queden colgados.

Una solución a este problema es utilizar editores de texto que cargan la información del archivo a demanda; uno de ellos se llama: Emedtray; tiene un versión gratuita. Y brinda soporte para Sistemas Operativos Windows: Windows 10/8.1/7/Server 2008 R2 or later. Y es muy rápido y ligero.

Icono del editor: Emedtray

Espacio de Trabajo del Editor Emedtray


Espero les sea de mucha ayuda.

Saludos,

Wijoata ;-)

lunes, 2 de abril de 2018

REST Web Service: Consulta de RUC - SUNAT

Realice la implementación del Servicio Web para consultar el Registro Único de Contribuyentes (RUC) - SUNAT. Se utilizaron tecnologías como: PHP 7, Framework Laravel 5, MySQL y Scripts para Procesos Batch en Linux.

La URL para consultar debe tener el siguiente formato: http://services.wijoata.com/consultar-ruc/api/ruc/{RUC} o https://services.wijoata.com/consultar-ruc/api/ruc/{RUC}.

Ejemplo: http://services.wijoata.com/consultar-ruc/api/ruc/20600675070 o https://services.wijoata.com/consultar-ruc/api/ruc/20600675070

Así mismo la solicitud debe de contemplar:
  • Accept: application/json
  • Content-Type: application/json
  • Method: POST
El formato de la respuesta es de tipo: JSON, con la siguiente estructura:
{
    "status": 1,
    "msg": "Operación satisfactoria.",
    "ruc": "20600675070",
    "razonSocial": "TERPRO INGENIEROS S.A.C. - TERPRO S.A.C.",
    "direccion": "URB. LOS ROBLES LA MOLINA CAL. LOS TALLANES 196 Dpto. 301",
    "ubigeo": "150114"
}

A continuación, imagen para ilustrar el funcionamiento del Servicio Web:



Espero les sea de mucha ayuda.

Última actualización: 27-01-2021

Saludos,

Wijoata ;-)

miércoles, 2 de agosto de 2017

Ejecutar Clase Java desde Consola (Linux/Windows)

Existen casos que en los que se requiere ejecutar una clase Java para realizar la manipulación de datos y obtener indicadores o generar archivos de texto plano para una migración o corrección de datos por única vez.

Bueno, una posible y rápida solución es implementar el algoritmo en una clase Java y realizar su ejecución desde Consola.

Por ejemplo; si tenemos un archivo Java: Tarea01.java y deseamos ejecutarlo desde una consola Linux; debemos hacer lo siguiente:
  1. Compilar el archivo Tarea01.java con el siguiente comando:
    javac Tarea01.java
  2. Luego ejecutarlo con el siguiente comando:
    java Tarea01

Si la clase Java requiere una librería en particular, debemos hacer lo siguiente:
  1. Compilar el archivo Tarea01.java con el siguiente comando:
    javac -cp "ojdbc14.jar:" Tarea01.java
  2. Luego ejecutarlo con el siguiente comando:
    java -cp "ojdbc14.jar:" Tarea01
En caso, la ejecución se realice en una consola Windows; se debe hacer lo siguiente:
  1. Compilar el archivo Tarea01.java con el siguiente comando (las librerías son separadas por ";"):
    javac.exe -cp "ojdbc14.jar;" Tarea01.java
  2. Luego ejecutarlo con el siguiente comando:
    java.exe -cp "ojdbc14.jar;" Tarea01
Una herramienta ligera y simple de utilizar cuando se trata de trabajar con Scripts implementados archivos Java es Gel (https://drive.google.com/open?id=0B8qXL-W9xQqabng3X1dvczZtckU)



Espero les sea de mucha ayuda.

Saludos,

Wijoata

lunes, 1 de agosto de 2016

Implementación de un Proxy Cliente desde un WSDL - SOAP - Java

Muchos desarrolladores siempre utilizan IDEs para la implementación de un Cliente Proxy para utilizar un Servicio Web; generándose las clases de la implementación en paquetes por defecto que define el WSDL del Servicio Web, los cuales se ven mal al momento de anexarlos a nuestro proyecto.

Por ejemplo: Tenemos un proyecto, en el que estamos trabajando con los siguientes paquetes:

  • latam.company.proyecto.controller
  • latam.company.proyecto.model
  • latam.company.proyecto.service
  • latam.company.proyecto.util
  • pe.com.other.company.ws.consult (Paquetes de las Clases del Servicio Web - Cliente Proxy)
  • pe.com.other.company.ws.consult.Error.V1  (Paquetes de las Clases del Servicio Web - Cliente Proxy)
  • pe.com.other.company.ws.consult.TestHeader.V1  (Paquetes de las Clases del Servicio Web - Cliente Proxy)

En este caso, el IDE generó las clases del Cliente Proxy en los paquetes: pe.com.other.company.ws.consult, los cuales son distintos al estándar que se esta manejando en nuestro proyecto.

Para mantener el estándar, recomiendo realizar lo siguiente:

  1. Utilizar el ejecutable o herramienta que viene en el SDK de java, de nombre wsimport.exe (WINDOWS) o wsimport (LINUX). La ubicación en el SDK: ..\Java\jdk1.7.0_25\bin\wsimport.exe (WINDOWS).
  2. Ejecutarlo el comando desde la consola, de la siguiente forma: 
    1. wsimport -p latam.company.proyecto.ws -keep -verbose http://192.168.2.140/TEST/Subscriptions/Consult?wsdl
    Donde:
     -p latam.company.proyecto.ws: Indica el paquete donde deseamos que se generen las clases de la implementación. El nombre del paquete debe seguir el estándar de la solución a implementar. 
     -keep: Nos permite guardar los archivos generados. (*.java, *.class).
     -verbose: Mensajes del proceso de generación.
     http://192.168.2.140/TEST/Subscriptions/Consult?wsdl: Ubicación del WSDL del Servicio Web. Este también puede ser una ubicación local, por ejemplo: "D:\TEST\Consult.wsdl" para Windows.

Luego de generar las clases, se deben agregar al proyecto, quedando de la siguiente forma:
  • latam.company.proyecto.controller
  • latam.company.proyecto.model
  • latam.company.proyecto.service
  • latam.company.proyecto.util
  • latam.company.proyecto.ws (Paquetes de las Clases del Servicio Web - Cliente Proxy)
  • latam.company.proyecto.ws.Error.V1 (Paquetes de las Clases del Servicio Web - Cliente Proxy)
  • latam.company.proyecto.ws.TestHeader.V1 (Paquetes de las Clases del Servicio Web - Cliente Proxy)
 
De esta forma se mantendría un orden en la arquitectura lógica de la solución. 






jueves, 22 de octubre de 2015

Oracle DataBase - Como eliminar objetos de un Usuario

Hoy les explicaré como eliminar objetos de un determinado tipo, estos pueden ser: 'TABLE', 'VIEW', 'PACKAGE', 'PROCEDURE', 'FUNCTION', 'SEQUENCE', que han sido creados por el usuario que ha iniciado sesión.

Para esto, nos ayudará el siguiente bloque anónimo: 
SET SERVEROUTPUT ON SIZE 1000000
BEGIN
  FOR cur_rec IN (SELECT object_name, object_type
                  FROM   user_objects
                  WHERE  object_type IN ('TABLE', 'VIEW', 'PACKAGE', 'PROCEDURE', 'FUNCTION', 'SEQUENCE')) LOOP
    BEGIN
      IF cur_rec.object_type = 'TABLE' THEN
        EXECUTE IMMEDIATE 'DROP ' || cur_rec.object_type || ' "' || cur_rec.object_name || '" CASCADE CONSTRAINTS';
      ELSE
        EXECUTE IMMEDIATE 'DROP ' || cur_rec.object_type || ' "' || cur_rec.object_name || '"';
      END IF;
    EXCEPTION
      WHEN OTHERS THEN
        DBMS_OUTPUT.put_line('FAILED: DROP ' || cur_rec.object_type || ' "' || cur_rec.object_name || '"');
    END;
  END LOOP;
END;

Dónde: 

  • SET SERVEROUTPUT ON SIZE 1000000: Tamaño del buffer en bytes para escribir en el log: DBMS_OUTPUT.put_line. 
  • object_type IN ('TABLE', 'VIEW', 'PACKAGE', 'PROCEDURE', 'FUNCTION', 'SEQUENCE'): Indicamos los tipos de objetos que vamos a eliminar. 
  • IF cur_rec.object_type = 'TABLE' THEN: Condición para eliminar Objetos de Tipo: TABLE, ya que difiere de la forma de eliminar los demás objetos en: CASCADE CONSTRAINTS, las cuales son palabras reservadas que borran primero todas las Foreing Keys que referencian a la tabla.

Saludos, 

domingo, 5 de julio de 2015

Comparar archivos con SUBLIME TEXT 3

Comparar archivos con Sublime Text; me llamo la atención, ya que hacerlo con esta herramienta me pareció demasiado fácil, tan simple como usar las teclas cursores (arriba, abajo, derecha o izquierda); así que les comento como utilizarlo:

Requerimientos:


Instalación de Sublimerge:


1. Ir a la Opción de menú: Preferences > Package Control.


 2. Ejecutamos el Comando: Install Package.


3. Buscamos el Package: Sublimerge 3


4. Una vez instalado, activamos el Package, sino se encuentra en la lista, entonces ya esta activado.

Comprar archivos:

1. Cargamos la carpeta donde se encuentran los archivos a comparar, luego los seleccionamos y procedemos a seleccionarlos. Hacemos Click derecho y seleccionamos: Sublimerge > Compare Selected Files;

2. Se abre una ventana en la que podemos comparar los archivos seleccionados.


3. Pulsamos la tecla Cursor hacia abajo y comenzamos a comprar.  Si deseamos pasar algún cambio del archivo de la Derecha a la Izquierda, simplemente pulsamos la tecla Cursor Izquierda y viceversa.



4. Pasando cambios del archivo de la Derecha al archivo de la Izquierda. Una vez terminada la comparación, guardamos y listo!!.

Espero les sea de mucha ayuda.

Actualizado: 29/06/2021

Saludos,

Wijoata

sábado, 7 de junio de 2014

El Trabajo del Futuro

En esta ocasión les comparto un vídeo muy interesante, que lleva como título "El Trabajo del Futuro"; donde nos muestra la realidad del siglo XXI y sus acelerados cambios, tanto para profesionales como para las empresas de este tiempo. 

Y una de las frases más interesantes: 
"Siempre que te pregunten si puedes hacer un trabajo, contesta que sí y ponte enseguida a aprender como se hace" (F. D. Roosevelt).

Disfrútenlo. 

Saludos, 



jueves, 16 de enero de 2014

Instalación de MariaDB 10.0 en Ubuntu 13.10 saucy x64



Registrando Repositorio:

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add-apt-repository 'deb http://ftp.osuosl.org/pub/mariadb/repo/10.0/ubuntu saucy main'

Nota: Url para buscar repositorios de otros SO Linux. Aquí



Luego de registrado el Key y Agregado el Repositorio; se actualizan todos los paquetes que Ubuntu con el siguiente comando:

sudo apt-get update 

Instalando MariaDB:
Ahora procedemos a instalar el Motor de Base de Datos MariaDB con el siguiente comando:

sudo apt-get install mariadb-server

Luego de descargar los archivos de instalación necesarios, se inicia el asistente de instalación solicitándonos el password del usuario root (Dos Veces, para confirmar):


Ingresando Password de root


Instalando MariaDB

Para poder administrar los servicios por consola en Ubuntu de una manera amigable; usamos el comando (Es el simil al comando chkconfig):

sudo apt-get install sysv-rc-conf

Luego, de instalarlo solo ejecutamos: sudo sysv-rc-conf:

Panel de Administración de: sysv-rc-conf

Administrando MariaBD - localhost

Administrando MariaDB - HeidiSQL

La relación de Google y MariaDB:


El equipo de MySQL de Google está en el proceso de traslado de los usuarios internos de Google desde MySQL 5.1 a MariaDB 10.0. El equipo de MySQL de Google y el equipo de SkySQL están trabajando juntos para avanzar en la fiabilidad y el conjunto de características de MariaDB.



miércoles, 3 de abril de 2013

JMeter 2.9 - Pruebas de Stress - Seam Framework

Los elementos necesarios para realizar un test de stress con JMeter 2.9 a una aplicación web implementada con Seam Framework son los siguientes:








Elementos JMeter requeridos
La configuración del Gestor de Cookies HTTP es por defecto.
El elemento HTTP Request Defaults: Se le asigna el nombre del servidor o IP.
El Regular Expresion Extractor (2 elementos):
1.- Para el ViewState

ViewState

2. Para el CID

cid

El elemento Recording Controller, tiene todas las paginas que fueron grabadas para el escenario, aqui se debe realizar lo siguientes:
1. Buscar el parámetro javax.faces.ViewState y asignarle como valor: ${jsfViewState}
2. Buscar el parámetro cid y asignarle como valor: ${CID}
3. Cada página tiene un Gestor de Cabecera HTTP, aqui se debe reemplazar el valor fijo de cid, del parámetro Referer:
     Referer                     http://XXXXX/XX/XXXXX/pagina.seam?cid=${CID}

El elemento Configuración del CSV Data Set: hace referencia a un archivo csv; para cargar los usuarios y password para la prueba de stress.
Configuración del CSV Data Set


Asignándole las respectivas variables: USER y PWD a la pagina de login.seam:
Asignando las variables a login.seam


Y por último los elementos: Summary Report y Ver Árbol de Resultados, reportes que nos ayudarán a ver los resultados del test.

Saludos,
Wijoata ;-)