La diferencia entre programar sitios web y desarrollar aplicaciones profesionales para Internet.
miércoles, junio 04, 2014
Manteniendo sesiones de usuario con tc Server y Gemfire
Mi post sobre tc Server y Gemfire en el blog de Wetcom.
lunes, junio 02, 2014
Ubuntu 14.04 – Utilizar la red por cable y wireless al mismo tiempo
La red interna de mi oficina tiene varias redes ruteadas y se accede a Internet usando un proxy a través de un firewall. Existe una red wireless desconectada de la red Interna sólo para permitir acceso a Internet a los invitados.
Con Ubuntu 14.04 (seguramente con varias versiones anteriores también) esto es posible sin necesidad de instalar ningún software adicional. Todo gracias a que Ubuntu maneja las configuraciones de red (salvo el proxy) a nivel de conexión y no de “placa de red”.
La red interna de mi oficina consta de tres subredes ruteadas entre sí: la red de máquinas de escritorio 10.0.1.0/24, la red de servidores 10.0.2.0/24 y la red de servicios 10.0.3.0/24. Además, la red wireless (desconectada de la red interna) 127.16.0.0/24.
Tanto la red de máquinas de escritorio como la wireless usan DHCP.
Vamos a Network Connections -> Ethernet -> Wired connection (la que corresponda) -> Edit -> Ipv4 Settings. Aquí agregamos el DNS interno de nuestra empresa y el dominio de búsqueda.
Luego hacemos clic en "Routes" y tildamos la opción "Use this connection only for resources on its network".
Listo, si nuestra red interna cuenta con una sola red, entonces ya está todo listo. Ya salimos a Internet por la red wireless y accedemos a los servicios internos por la red cableada.
Luego del paso 1, todo funciona bien pero no puedo acceder a la red interna de servidores ni la de servicios porque intenta buscarlas por la red Wireless.
Para solucionar esto, simplemente volvemos a la ventana de edicion de rutas de la red cableada y agregamos las siguientes rutas:
Address: 10.0.2.0 (la red de servidores en mi caso)
Netmask: 255.255.255.0
Gateway: 10.0.1.0 (la red de donde obtenemos ip via DHCP)
Metric: 1
Agregamos una segunda ruta para la red de servicios 10.0.3.0.
Ya podemos acceder a todos los recursos internos por la red cableada y a Internet por wireless. Y lo mejor, si desconecto la red cableada, sigue funcionando Internet. Si desconecto la red wireless, sigue funcionando la red interna. Si vuelvo a conectar todo, se reconfigura automáticamente.
Todo gracias a que las rutas están asociadas a la conexión de red por lo que se agregan y quitan del sistema en forma automática según se conecte o desconecte la red correspondiente.
Objetivo: lograr que mi notebook utilice la red por cable para acceder a los recursos internos y la red wireless para acceder a Internet.
Con Ubuntu 14.04 (seguramente con varias versiones anteriores también) esto es posible sin necesidad de instalar ningún software adicional. Todo gracias a que Ubuntu maneja las configuraciones de red (salvo el proxy) a nivel de conexión y no de “placa de red”.
Mi escenario de redes
La red interna de mi oficina consta de tres subredes ruteadas entre sí: la red de máquinas de escritorio 10.0.1.0/24, la red de servidores 10.0.2.0/24 y la red de servicios 10.0.3.0/24. Además, la red wireless (desconectada de la red interna) 127.16.0.0/24.
Tanto la red de máquinas de escritorio como la wireless usan DHCP.
Primer paso: forzar salida a Internet sólo por la red wireless
Vamos a Network Connections -> Ethernet -> Wired connection (la que corresponda) -> Edit -> Ipv4 Settings. Aquí agregamos el DNS interno de nuestra empresa y el dominio de búsqueda.
Luego hacemos clic en "Routes" y tildamos la opción "Use this connection only for resources on its network".
Listo, si nuestra red interna cuenta con una sola red, entonces ya está todo listo. Ya salimos a Internet por la red wireless y accedemos a los servicios internos por la red cableada.
Segundo paso: forzar el acceso a las redes internas restantes por la red cableada
Luego del paso 1, todo funciona bien pero no puedo acceder a la red interna de servidores ni la de servicios porque intenta buscarlas por la red Wireless.
Para solucionar esto, simplemente volvemos a la ventana de edicion de rutas de la red cableada y agregamos las siguientes rutas:
Address: 10.0.2.0 (la red de servidores en mi caso)
Netmask: 255.255.255.0
Gateway: 10.0.1.0 (la red de donde obtenemos ip via DHCP)
Metric: 1
Agregamos una segunda ruta para la red de servicios 10.0.3.0.
Terminamos
Ya podemos acceder a todos los recursos internos por la red cableada y a Internet por wireless. Y lo mejor, si desconecto la red cableada, sigue funcionando Internet. Si desconecto la red wireless, sigue funcionando la red interna. Si vuelvo a conectar todo, se reconfigura automáticamente.
Todo gracias a que las rutas están asociadas a la conexión de red por lo que se agregan y quitan del sistema en forma automática según se conecte o desconecte la red correspondiente.
miércoles, mayo 15, 2013
Archivo de configuración en Java similar al App.config de .NET
Luego de replicar mi helper de Sql en Java, el siguiente paso fue utilizar un archivo externo de configuración para guardar el "ConnectionString".
En .NET se encuentra integrado a Visual Studio. En un proyecto de consola simplemente agregamos un "Application Configuration File" que nombra como App.config. Este archivo se renombrará a "NombreDeEjecutable.config" al momento de compilar.
Para leerlo, usamos los métodos estáticos de la clase ConfigurationManager.
Java tiene un objeto llamado "Properties" que gestiona objetos para guardar configuraciones y contiene métodos de escritura y lectura a disco.
Usé este objeto para crear mi helper llamado (obviamente) ConfigurationManager. Lo implementé cómo singleton de modo que la primera vez que lo invocamos lee las configuraciones desde disco y luego revisa todo desde memoria.
Este es el código que agregué a mi librería de helpers:
package ar.com.bdamian.configuration;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
public class ConfigurationManager {
private static Properties p = null;
private static Properties getInstance() {
if (p==null) {
p = new Properties();
try {
p.load(new FileInputStream("config.properties"));
} catch (IOException ex) {}
}
return p;
}
public static String getAppSetting(String appSetting) {
Properties prop = getInstance();
return prop.getProperty(appSetting);
}
}
Luego, para usarlo en un proyecto hay que agregar un archivo de texto llamado "config.properties" a nivel de la carpeta del proyecto conteniendo los datos necesarios.
En mi ejemplo fue un ConnectionString:
connectionString=jdbc\:sqlserver\://localhost\\SQLEXPRESS\:1433;DatabaseName\=Northwind;user\=usuario;Password\=password
Por ultimo, lo llamamos para obtener la configuración de esta forma:
String connString = ConfigurationManager.getAppSetting("connectionString");
No se si esta es la mejor forma, pero como vengo de C# .NET, me resulta cómodo hacerlo así.
Cómo lo hacemos en .NET
En .NET se encuentra integrado a Visual Studio. En un proyecto de consola simplemente agregamos un "Application Configuration File" que nombra como App.config. Este archivo se renombrará a "NombreDeEjecutable.config" al momento de compilar.
Para leerlo, usamos los métodos estáticos de la clase ConfigurationManager.
Cómo hacer algo similar en Java
Java tiene un objeto llamado "Properties" que gestiona objetos para guardar configuraciones y contiene métodos de escritura y lectura a disco.
Usé este objeto para crear mi helper llamado (obviamente) ConfigurationManager. Lo implementé cómo singleton de modo que la primera vez que lo invocamos lee las configuraciones desde disco y luego revisa todo desde memoria.
Este es el código que agregué a mi librería de helpers:
package ar.com.bdamian.configuration;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
public class ConfigurationManager {
private static Properties p = null;
private static Properties getInstance() {
if (p==null) {
p = new Properties();
try {
p.load(new FileInputStream("config.properties"));
} catch (IOException ex) {}
}
return p;
}
public static String getAppSetting(String appSetting) {
Properties prop = getInstance();
return prop.getProperty(appSetting);
}
}
Luego, para usarlo en un proyecto hay que agregar un archivo de texto llamado "config.properties" a nivel de la carpeta del proyecto conteniendo los datos necesarios.
En mi ejemplo fue un ConnectionString:
connectionString=jdbc\:sqlserver\://localhost\\SQLEXPRESS\:1433;DatabaseName\=Northwind;user\=usuario;Password\=password
Por ultimo, lo llamamos para obtener la configuración de esta forma:
String connString = ConfigurationManager.getAppSetting("connectionString");
No se si esta es la mejor forma, pero como vengo de C# .NET, me resulta cómodo hacerlo así.
Suscribirse a:
Entradas (Atom)