Netbeans 12 con Java JDK 11 en Ubuntu

Al instalar el IDE de Netbeans 12 usando snap en ubuntu se hace complicado cambiar el archivo netbeans.conf por estar de solo lectura y a veces no queremos cambiar la versión del java usado por defecto en el SO (sudo update-alternatives –config java)

Por lo que podríamos ejecutar Netbeans, desde consola, de la siguiente forma:

netbeans --jdkhome /usr/lib/jvm/java-11-openjdk-amd64/

Otra forma es tener una versión local de la configuración de netbeans por lo que podríamos hacer algo como sigue:

mkdir -p ~/snap/netbeans/current/etc/
cp /snap/netbeans/current/netbeans/etc/netbeans.conf ~/snap/netbeans/current/etc/netbeans.conf
gedit ~/snap/netbeans/current/etc/netbeans.conf

Tocaría repetir el anterior proceso cada vez que se actualice la versión del IDE

https://stackoverflow.com/questions/58825429/how-to-configure-netbeans-when-installed-as-snap-package

Buscar y reemplazar en Vim/Vi

Vim es uno de los más populares editores de texto por linea de comandos en linux.

En vim puedes buscar y reemplazar texto usando el comando :substitute (:s)

En general la forma del comando de substitución es el siguiente:

:[range]s/{pattern}/{string}/[flags] [count]

Ejemplos:

  1. Buscar la primera ocurrencia del string foo y reemplazarlo con bar:
   :s/foo/bar/

2. Buscar y reemplazar todas las ocurrencias de la palabra en la linea:

   :s/foo/bar/g

3. Buscar y reemplazar todas las ocurrencias de la palabra en el archivo:

   :%s/foo/bar/g

Docker cluster Tomcat

Session-repicate1

Docker

Es un proyecto de código abierto capaz de automatizar el despliegue de aplicaciones dentro de contenedores de software, proporcionándonos así una capa adicional de abstracción y automatización en el nivel de virtualización de sistema operativo sobre Linux.​ Docker hace uso de las utilidades de aislamiento de recursos del núcleo de linux como los cgroups y espacios de nombre del kernel, para permitir que “contenedores” independientes se ejecuten como una instancia única de Linux, evitando así la elevada sobrecarga en el arranque y mantenimiento de máquinas virtuales. Fuente wikipedia

Instalación docker y docker-compose

Docker

Para instalar Docker en su versión más reciente en linux usamos:

wget -qO- https://get.docker.com/ | sh

Luego agregamos el usuario al grupo de docker, para no tener que usar sudo

sudo usermod -aG docker $(whoami)

Docker compose

sudo apt-get -y install python-pip
sudo pip install docker-compose

 

Creación de archivo
docker-compose.yaml

El cluster lo crearemos de la siguiente manera: Vamos a tener 3 contenedores con tomcat, un contenedor para el balanceador con nginx, otro contenedor para la bd postgresql, y un contendor para redis que manejará las sesiones de tomcat.

Creamos directorio cluster y agregamos ahí los recursos que necesitemos, como war, copia de BD y demás

El archivo docker-compose.yaml tiene lo siguiente:

Seguir leyendo «Docker cluster Tomcat»

Adding local jar as your dependencies

https://stackoverflow.com/questions/38301919/maven-project-creation-with-local-repository-and-local-dependencies

For adding local jar as your dependencies, there are two way to achieve this.

1) Use scope system

<dependency>
    <groupId>poi</groupId>
    <artifactId>poi</artifactId>
    <version>1.0</version> <!-- Dummy Version -->
    <scope>system</scope>
    <systemPath>/pathToJar/poi.jar</systemPath>
</dependency>

But using this way some maven building tools failed due to scope system, like maven-assembly-plugin and maven-shade-plugin. To avoid this use following way.

2) By creating local repository,

Create directory repo in your project directory. Run following maven command to install jar to local repository,

mvn deploy:deploy-file -Durl=file:///path/toyourproject/repo/ -Dfile=/pathToJar/poi.jar -DgroupId=poi -DartifactId=poi -Dpackaging=jar -Dversion=1.0

Run mvn deploy command in project folder via cmd. If mvn is not installed in your machine then use following links for same.

Install Maven in Windows

Install Maven in Ubuntu/UNIX

And add local repository entry pom.xml.

<repositories>
    <repository>
        <id>project.local</id>
        <name>project</name>
        <url>file:${project.basedir}/repo</url>
    </repository>
</repositories>

Finally add your dependency,

<dependency>
     <groupId>poi</groupId>
     <artifactId>poi</artifactId>
     <version>1.0</version>
</dependency>

This dependency will use jar from your local repo created in project folder.

 

Docker – Comandos comunes

docker-624x557

Docker

Es un proyecto de código abierto capaz de automatizar el despliegue de aplicaciones dentro de contenedores de software, proporcionándonos así una capa adicional de abstracción y automatización en el nivel de virtualización de sistema operativo sobre Linux.​ Docker hace uso de las utilidades de aislamiento de recursos del núcleo de linux como los cgroups y espacios de nombre del kernel, para permitir que “contenedores” independientes se ejecuten como una instancia única de Linux, , evitando así la elevada sobrecarga en el arranque y mantenimiento de máquinas virtuales. Fuente wikipedia

Para tener la ultima versión de docker en linux podemos usar el siguiente recurso:
https://get.docker.com

Docker tambien nos facilita un repositorio con diferentes tipos de imagenes creados por la comunidad que podemos obtener de:
https://hub.docker.com

Seguir leyendo «Docker – Comandos comunes»

Ejecutar comandos de Postgresql de la consola psql desde Java

postgreSQLYJava

A veces necesitamos ejecutar comandos de Postgresql de la consola psql desde Java, donde además no podemos usar el prompt para suministrar la contraseña de forma interactiva.

Para esto podemos usar un archivo de contraseñas (.pgpass) o usando variables de entorno; en nuestro caso vamos a crear un archivo shell (Prueba.sh) con lo siguiente:

Seguir leyendo «Ejecutar comandos de Postgresql de la consola psql desde Java»

ExtJS – Evento click a un label

SENCHA20EJS.preview

Cuando necesitamos agregar el evento click a un compenten tipo Label no podemos hacerlo directamente por lo que debemos tener un código como sigue:

onFormAfterRender: function(component, eOpts) {
        //Click en label
        this.getView().down('#lbTerminos').getEl().on('click',function(){

            Ext.create('Ext.window.Window', {
                height: 450,
                width: 650,
                padding: 10,
                modal: true,
                cls: "pad-text",
                layout: 'fit',
                items: {  // Let's put an empty label html
                    xtype: 'label',
                    html : '<h1>Ventana que se abre al hacer click</h1>'
                }
            }).show();
        });
    },