lunes, 5 de septiembre de 2011

Acceso a servidores Linux/Unix desde Windows

Hacía tiempo que no escribía nada por aquí. De hecho, aún tengo pendiente experimentar con bases de datos NoSQL. He estado bastante ocupado estos últimos meses. Así que en vez de dedicarme a hacer un estudio sobre una base de datos NoSQL, voy a hacer un paréntesis y explicar un par de herramientas útiles para trabajar con servidores Linux/Unix (*nix en adelante) desde Windows.
Nuestro objetivo es operar con un servidor *nix desde una máquina Windows. Generalmente, los servidores *nix disponen de un servicio de ssh para poder conectarse a ellos remotamente de forma segura. La idea es podernos conectar por SSH a dicho servidor y aprovecharnos de sus múltiples características:
  • Conexión segura
  • Terminal remoto
  • Intercambio de archivos
  • Ejecución de aplicaciones gráficas (con X11 forwarding)
Para ello hay muchas herramientas. En esta entrada me centraré en algunas de ellas.

Putty

Este famoso programa de terminal cliente para entornos Windows es el más usado y el más sencillo de utilizar. Si se desea copiar archivos habrá que recurrir a usar la línea de comandos o un programa gráfico en el servidor. Es decir, no dispone de una aplicación de copia de archivos integrada. Para acceder a la página web del autor y su descarga gratuita, pulsar aquí.

Requiere una aplicación externa instalada en el sistema Windows si se desea usar aplicaciones gráficas del servidor (X11 forwarding).

Bitvise SSH Tunnelier

Bitvise SSH Tunnelier es una aplicación cliente de SSH que integra un terminal cliente (como sucede con putty) y una aplicación gráfica para el intercambio de archivos entre el cliente y el servidor. Al igual que putty, permite la redirección de aplicaciones gráficas (X11 forwarding) usando una aplicación externa.

X11 forwarding

Ahora sólo nos queda por resolver el problema de qué aplicación instalar para usar aplicaciones gráficas. Para ello podemos recurrir a Xming, que una vez lo hayamos instalado en nuestro sistema Windows deberemos configurar uno de los dos programas anteriores indicándoles el servidor X11 (generalmente <ip_del_cliente>:0.0).

Con estas aplicaciones tendremos acceso a servidores *nix, como si estuviéramos usando sistemas *nix. Por supuesto, todas estas aplicaciones son gratuitas y de libre distribución.

¡Saludos!

jueves, 3 de febrero de 2011

El movimiento NOSQL


El movimiento NOSQL (Not Only SQL, que no se confunda como una negación de SQL o un movimiento antiSQL) surge de la necesidad de almacenar datos de forma distinta a la que nos proporciona una base de datos relacional. Las bases de datos relacionales siguen el modelo relacional de creado por Codd en los 70 que se fue afinando en los 80. La verdad es que es un sistema que funciona bien, pero que no se adapta muy bien con el paradigma de orientación a objetos. Para paliar esto, surgieron nuevos modelos post-relacionales como es el de las bases de datos orientadas a objetos (Caché, de Intersystems). Además, últimamente están apareciendo nuevas necesidades, como la de almacenamiento masivo para cálculo (DataWareHousing), adaptada a redes sociales (Bases de datos estructuradas en grafos), para cálculo masivo (Map/Reduce), etc. Muchas de ellas no son ACID, ya que están orientadas a otros usos que no son el transaccional.

De este modo, han salido una serie de implementaciones de distintas alternativas al modelo relacional. Cada una tiene sus ventajas y sus inconvenientes. Las primeras que se me pasan por la cabeza son: redis, riak, hbase, membase, cassandra, mongodb, couchdb, ravendb, neo4j... Hay algunas comparativas: aquíaquí...

Tienen que ser realmente útiles cuando se están usando en entornos de producción (Facebook, SourceForge, ebay, Amazon, Google, Apple y otros grandes están usando este tipo de tecnología). Pero como todo, dependen del proyecto y de sus necesidades. No hay nada que siempre sea la solución ideal.
 
En breve tengo pensado introducirme en algunas de ellas y os iré comentando mi experiencia.

miércoles, 10 de noviembre de 2010

Tamaño de los tipos base

A veces, sobre todo cuando se programa a bajo nivel, importa saber cuál es el tamaño de los tipos base de un sistema. Para ello, podemos hacer un pequeño programa en C:


#include
#include
int main(int argc, char* argv[])
{
printf("Platform v1.0 (c) 2010 Arnau Oncins Rodríguez\n\n");

// Tamaños de tipos
printf("Tamaños de tipos: \n");
printf("\tTamaño de long: %ld \n", sizeof(long));
printf("\tTamaño de int: %ld \n", sizeof(int));
printf("\tTamaño de short: %ld \n", sizeof(short));
printf("\tTamaño de long long: %ld \n", sizeof(long long));
printf("\tTamaño de char: %ld \n", sizeof(char));
printf("\tTamaño de unsigned int: %ld \n", sizeof(unsigned int));
printf("\tTamaño de unsigned long: %ld \n", sizeof(unsigned long));
printf("\tTamaño de float: %ld \n", sizeof(float));
printf("\tTamaño de double: %ld \n", sizeof(double));

// Rangos de valores
printf("\nMáximos y mínimos: \n");
printf("\tint: [ %d , %d ] \n", INT_MIN, INT_MAX);
printf("\tlong: [ %ld , %ld ] \n", LONG_MIN, LONG_MAX);

return 0;
}


Este código mostrará por pantalla algo parecido a ésto:

nauar@tulkass:~$ ./platform
Platform v1.0 (c) 2010 Arnau Oncins Rodríguez

Tamaños de tipos:
Tamaño de long: 8
Tamaño de int: 4
Tamaño de short: 2
Tamaño de long long: 8
Tamaño de char: 1
Tamaño de unsigned int: 4
Tamaño de unsigned long: 8
Tamaño de float: 4
Tamaño de double: 8

Máximos y mínimos:
int: [ -2147483648 , 2147483647 ]
long: [ -9223372036854775808 , 9223372036854775807 ]


Como podéis observar, con este sencillo código ya podemos ver cuántos bytes ocupan los tipos base de un sistema.

Bienvenida

Hola a tod@s y bienvenid@s a mi blog. Me llamo Arnau, tengo 28 años, soy ingeniero superior en informática y pretendo tratar temas de informática de cualquier ámbito. "Cutreconlogía" no es un blog que se vaya a actualizar muy a menudo. Es más, lo usaré más bien a modo de cuadernillo, como los estudiantes que van a clase, para tomar nota de las distintas tecnologías y metodologías que aprendo en esta rama. Sentiros libres de comentar, leer y corregirme, aportaréis valor añadido y nos enriqueceremos todos.

La nave despega ya...