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,