style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Blogs

¿Eres nuevo? ¿Cómo hacer que tus preguntas tengan mas posibilidades de ser respondidas?

Es normal que un usuario al tener un problema con algún programa quiera obtener ayuda de la comunidad y se disponga a escribir en algunos de los foros. Pero, ¿Que pasa cuando al crear el tema este queda como si hubiera sido escrito por un niño de 5 años?
Aquí daré unos tips sobre como hacer que tu pregunta tenga mas chance de ser respondida, mas rápido y con mas ganas de ayudarte por parte de la comunidad.
El mismo propósito de este tema puede parecer innecesario y/o inservible, por varias razones. Pero hay un motivo que me impulsa a hacerlo: me he dado cuenta de que la mayoría de las personas no saben como redactar una pregunta.

PROBLEMAS EN UN BUCLE FOR

Hola compañeros:

Tengo un método que interactura sobre un Jtable (tblTabla2). El cometido es el siguiente:
Comprueba qu el Jtable tenga un registro o varios.
Cuando hay varios registros en el Jtable, mira en la columna 9 si los nº son iguales o no
Dependiendo de si son iguales o no anotará en la columna 1 un dato que tambien está subrodinado a lo anotado en la columna 0.

El método es el siguiente:

void repasaReparto(){
igual = "SI";
// Cuenta los registros
int i = 0;
for (i = 0; i < tblTabla2.getRowCount(); i++) {

}
//Para cuando el JTabla2, tiene más de 1 registro
if (i>1) {
//Carga el valor de la fila 1, de la columna 9 (TAMAÑO) en la variable repartoS
String repartoS = "";
String repartoSotras = "";
int filasel = 0;
modelo20 = (DefaultTableModel) tblTabla2.getModel();
repartoS = (String) modelo20.getValueAt(filasel, 9);
//Compara el valor de las otras fila con la 1ª. Carga el valor de las demás filas
//(repartoSotras)y lo compara con repartoS
int i1 = 0;

Kotlin for Beginners


Koltin
es un lenguaje dependiente de la Máquina Virtual Java (JVM); empresas como Google han adoptado este lenguaje porque promete ofrecer compatibilidad e interoperabilidad con proyectos hechos con le lenguaje Java. Kotlin es muy similar a otros lenguajes de programación como Scala y Go (e incluso Typescript). Al igual que Java posee tipos clase (Byte, Short, Int, Float, Double, Boolean, Char). Además podemos importar librerías de Java sin ningún problema. Para declarar una variable modificable usamos var, para declarar una variable no modificable usamos val (similar a Scala).

Actualmente es muy popular para el desarrollo de aplicaciones móviles en Android.

Usando SDKMAN! podemos instalarlo.

$ sdk install kotlin

Mostramos la versión instalada.

$ kotlinc -version

Obtener información de LDAP

Hola, antes que nada un saludo, ya hace tiempo que no escribo nada, pero en este momento estoy teniendo algunos inconvenientes para trabajar una implementación con LDAP, exactamente para obtener información del UID del empleado.

Ya puedo saber si mis credenciales son validas, pero lo que no he podido hacer es obtener información más detallada del usuario que inicia sesión.

Alguien ha hecho algun desarrollo de ese tipo? cómo se deben enviar los DN correctos para poder obtener detalles de un usuario?

Espero alguien pueda ayudarme.

Ya no habra nada mejor que React, VUE o Angular?

Ya ni he escrito nada de React, me ha gustado bastante los hooks y muchos desarrolladores Web piensan que efectivamente React es la cima del desarrollo web, que para mejorar habría incluso que optimizar los navegadores en si mismo, sin embargo, no dejemos de pensar y preguntarnos Virtual DOM es lo mejor, realmente el DOM es tan lento como nos lo venden, a final de cuentas React, VUE y Angular corren sobre el navegador.

Hooks mejora la forma en que distribuimos estado y nos mantiene seguros de la POO, pero le carga bastante fuerte la mano al Garbage Collector, crear y recrear funciones no es de a gratis. Yo en lo personal he estado buscando librerias que no sean tan "gordas" como React, VUE o Angular un hello world en react pesa 70Kb.

¿Cómo edito metadatos de archivos de word?

Hola comunidad, solicitando su valioso apoyo, estoy tratando de modificar los metadatos de un archivo de word de office 365, con la librería de POI 3.9 como muestro a continuación.

       public static void main(String[] args) throws FileNotFoundException, InvalidFormatException, IOException {
        FileInputStream fs = new FileInputStream("D:\\text2.docx");
        OPCPackage opc = OPCPackage.open(fs);
        opc.getPackageProperties().setDescriptionProperty("pprrueba");
        opc.getPackageProperties().setTitleProperty("seeeee");
        opc.getPackageProperties().setRevisionProperty("666");
        opc.flush();
        opc.close();
        fs.close();
    }
//hasta este punto si los modifica en tiempo de ejecución, pero al archivo físico no le hace nada.

En todas las fuentes que consulté no alcanzo a visualizar en que momento está modificación se guarda en mi archivo. Por lo tanto aunque ejecute esta rutina no sucede nada, en el archivo no cambia los metadatos cuando los veo desde las propiedades del documento.

Primeros pasos con Selenium I

Hola :

Esta es la primera entrada de lo que pienso podría ser una librería que en algún momento le podría servir a alguien, he estado pensando en una forma en la cual poder ayudar con la configuración un poco más ordenada de lo que es la automatización de pruebas, obviamente existen muchas maneras de realizar test y en algún momento estaré pensando en publicar todas o la mayoría de herramientas que nos permitan realizar estas tareas de alguna mejor forma, así que esta primera entrada tratara de las automatizaciones de pruebas front-end por medio de Selenium WebDriver.
También empezaré a escribir sobre postman y algunas cosas que he tenido que aprender (no soy perfil tester, pero me interesan este tipo de pruebas)
La solución que se va a desarrollar en futuros posts me ha servido, y tal vez alguien pueda modificarla o aprovecharla para su beneficio y adaptarla a sus propias necesidades esto es lo bonito de la POO, pero antes de picar código, se debe de empezar con la teoría :) animo !

Realtime sin websockets

Cuando nos llega un requerimiento de aplicaciones en tiempo real y este requerimiento viene despues de Junio del 2018, la primera solucion que te vendra a la mente, sera usar websockets (creo) porque es una de las formas en las que podemos obtener actualizaciones de informacion desde el servidor, sin embargo, muchas empresas sobre todo las mas actualizadas (bancos, aseguradoras e instituciones financieras), debido a sus restricciones de red no siempre permiten usar protocolos tales como websockets y muchos desarrolladores piensan que la unica alternativa a websockets es polling o long-polling (hacer requests cada 5 o 3 segundos, o extender el request lo mas posible hasta recibir una respuesta) y usar una libreria como cometd para ayudar con eso (adivinas, tampoco me gusta cometd, de hecho soy uno de esos desarrolladores que no le gustan muchas cosas :P).

No se si soy yo

Otra vez se me duplico el post, este tiene el mismo contenido del de arriba

Rendering por todos lados

Si creaste el contador con Hooks que revisamos con anterioridad, te habras dado cuenta que el contador se incrementa cada segundo, pero no usamos un interval estamos usando setTimeout; esto sucede porque estamos inicializando el setTimeout cada vez que renderizamos el componente y en React esto sucede cada vez que actualizas el estado de un componente, pero si tienes mas de 100000 componentes hijos (tal vez con un poco menos), notaras que empiezas a tener performance issues, antes de hooks la unica forma de solucionarlo es usar uno de las funciones del ciclo de vida de React shouldComponentUpdate pero eso nos obliga a que ese componente sea una Clase (y no queremos clases con Hooks, de hecho no queremos clases del todo :P, OOP is evil).

Para solucionar este posible problema, desde la version 16.6 de React tenemos React.memo que nos ayuda a mostar una version memoizada del componente que queremos, reduciendo drasticamente el numero de repintados en los hijos.

Codigo

Ahora veremos un ejemplo de contador usando React.memo

import React, { useState } from 'react';
import ReactDOM from 'react-dom';

const Child = React.memo(props => {

Distribuir contenido

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">