sábado, 10 de abril de 2010

Como instalar un Servidor LAMP en Fedora 12 paso a paso

Ya ha pasado un tiempo desde que escribí el tutorial de Instalar un servidor LAMP en Fedora Core 6 , Core 7 y Core 8, es un artículo con muchas visitas y con más de 100 comentarios y preguntas, he decidido a que ya es hora de actualizarlo a la versión 12 de Fedora que es la más reciente al momento, además aprovechar y agregar mucho de los tips y preguntas incluidas en los comentarios así como también las cosas que han cambiado y algunos tópicos más avanzados. Así que empecemos…

En este tutorial vamos a ver como instalar y configurar un servidor LAMP para Fedora 12.

Un servidor LAMP se refiere a un conjunto de aplicaciones que por sus siglas es Linux+Apache+MySQL+PHP y en este caso vamos a instalar y configurar un servidor con los siguientes componentes:

Apache 2 – Servidor Web muy versatil y uno de los más utilizados en el mundo

MySQL 5 – Uno de los servidores de base de datos más populares y utilizados en sitios y aplicaciones web

PHP 5 – Es un lenguaje interpretado utilizado para construir aplicaciones y páginas web

Y veremos algunas utilidades como phpmyadmin que nos permitirán administrar mejor nuestro servidor.

Concepto: Un servidor no es más que un PC que presta algún servicio (como mostrar páginas web).

Pasos previos:

  • Obtener e Instalar Fedora: lo pueden obtener desde la página Oficial del proyecto Fedora.
  • El servidor debe tener al menos 256 MB de memoria RAM, si no saben cuanta memoria tiene su PC simplemente ejecuten free -m en el terminal si donde dice total es mayor a 256 están bien. Yo personalmente recomiendo tener al menos 512 MB de memoria RAM
  • También pueden probar instalando el servidor en una máquina virtual ya sea con virtualbox, vmware, kvm o el manejador de máquinas virtuales de su preferencia.
  • Si van a hacer la administración del servidor LAMP de manera remota les aconsejo instalar openssh-server (yum install openssh-server esto lo deben ejecutar como root).

Les aconsejo también seguir el tutorial paso a paso, he tratado de hacer los pasos lo más concretos y cortos posibles, para que así no se pierdan de nada y tampoco les aburra el tutorial.

Bueno ya tenemos todo listo para empezar así que abran un Terminal y pongámonos a trabajar.

A partir de ahora todos los comandos deben ser ejecutados como root (administrador)

1. Actualizar el Sistema

Es siempre aconsejable realizar la actualización de nuestro sistema antes de llevar a cabo cualquier instalación simplemente ejecuten lo siguiente en el terminal

yum -y update

Con este comando se actualiza nuestra lista de repositorios y los paquetes que tengamos instalados si hay alguna actualización disponible.

2. Instalar Apache y PHP en un sólo comando

Fedora nos da la opción de instalar paquetes en “grupos” algo parecido al tasksel de Debian y Ubuntu.

Para instalar el servidor Apache y PHP 5 vamos a utilizar el grupo “Servidor Web” para ver los paquetes que contiene este grupo ejecutamos el comando:

yum groupinfo "Servidor Web"

Nota: Si tu servidor está en otro idioma que no sea Español puedes reemplazar “Servidor Web” por “Web Server” que funciona para cualquier idioma

Esto nos dá la siguiente lista:

Paquetes obligatorios:
httpd
Paquetes predeterminados:
crypto-utils
distcache
httpd-manual
mod_perl
mod_python
mod_ssl
php
php-ldap
php-mysql
squid
webalizer
Paquetes opcionales:
...

Para instalar el grupo ejecutamos:

yum -y groupinstall "Servidor Web"

Al finalizar la instalación ya deberíamos tener instalado el servidor Apache y PHP5

Si quieres comprobar que versión de Apache se ha instalado debes ejecutar el siguiente comando:

httpd -v

Te aparecerá algo como:

Server version: Apache/2.2.14 (Unix)
Server built: Dec 3 2009 10:25:53

Para finalizar la configuración de Apache debemos configurarlo para que inicie siempre que reiniciemos nuestro servidor para esto ejecutamos en el terminal:

chkconfig --level 345 httpd on

Ahora iniciamos Apache con:

service httpd start

Si todo está bien debería aparecer un [OK]

Los comandos para manejar el servidor Apache son los siguientes, pueden utilizar cualquiera de las dos versiones del comando la versión larga o la corta, todos estos comandos deben ejecutarse como root:

Función Comando Comando Corto
Iniciar Apache /etc/init.d/httpd start service httpd start
Detener Apache /etc/init.d/httpd stop service httpd stop
Reiniciar Apache /etc/init.d/httpd restart service httpd restart
Estatus Apache /etc/init.d/httpd status service httpd status

El archivo de configuración por defecto de Apache se encuentra en el directorio /etc/httpd/ y el directorio por defecto de los archivos donde se guardarán las páginas web es en /var/www/html

Para probar que Apache está funcionando bien basta con ir a la dirección en tu navegador (Firefox, Konqueror o el que prefieran) http://localhost desde el mismo servidor o http://ipservidor desde otra PC y les debe aparecer algo como lo siguiente:

Fedora Pagina por defecto de Apache

Para comprobar la versión de PHP ejecutamos:

php -v

Debería aparecer algo como:

PHP 5.3.1 (cli) (built: Nov 20 2009 12:52:06)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies

Para comprobar que PHP está funcionando correctamente, vamos a crear el siguiente archivo llamado prueba.php como root con tu editor favorito puedes utilizar nano, vim, gedit, etc.:

vim /var/www/html/prueba.php

Nota: Aquí estoy utilizando vim para editar utilicen el editor de su preferencia.

Dentro del archivo copiamos lo siguiente:

Guardamos al archivo y vamos al navegador y colocamos la dirección http://localhost/prueba.php si estamos en el mismo servidor o http://ipdelservidor/prueba.php. Deberia desplegar una lista con toda la información de PHP, los módulos y librerias instalados.

Pagina de prueba.php phpinfo()

Si te aparece una pantalla parecida a la anterior es que PHP está correctamente instalado y funcionando con Apache. Si te aparece algo como que quiere guardar el archivo prueba.php intenta reiniciar el servidor Apache con service httpd restart.

El archivo de configuración de PHP se encuentra en /etc/php.ini

3. Instalar MySQL

MySQL es una de las base de datos open source más popular y utilizadas en innumerables páginas web y aplicaciones tanto gratuitas como comerciales. Es una base de datos bastante robusta y flexible, fácil de configurar y lo bastante rápida para la mayoría de las aplicaciones comunes.

Al igual que para Apache existe un Grupo de paquetes de instalación para MySQL llamado “Base de datos MySQL” para ver los contenidos de este grupo de paquetes puedes ejecutar:

yum groupinfo "Base de datos MySQL"

Para instalar el servidor de MySQL debemos ejecutar el siguiente comando:

yum -y groupinstall "Base de datos MySQL"

Nota: Si tu servidor está en otro idioma que no sea Español puedes reemplazar “Base de datos MySQL” por “MySQL Database” que funciona para cualquier idioma

Esto instalará todos los paquetes y librerias necesarios para que funcione el servidor MySQL

Ahora debemos hacer que el servidor MySQL se inicie cada vez que se arranque o se reinicie el sistema para esto ejecutamos:

chkconfig --level 345 mysqld on

Para iniciar MySQL ejecutamos

service mysqld start

Luego debemos configurar el servidor MySQL para configurar la clave de administrador ejecutando:

mysql_secure_installation

Primero nos pregunta por la contraseña de root de MySQL, aquí presionamos enter ya que todavía no hay ninguna contraseña de root configurada para MySQL

Enter current password for root (enter for none): 

Luego nos pregunta si queremos asignarle una contraseña de root para MySQL escribimos Y y presionamos Enter/Intro

Set root password? [Y/n]

Luego nos pide la contraseña, aquí deberán colocar una clave para el administrador de la base de datos (no confundir con root de Fedora), no es recomendable colocar la misma clave del usuario de Fedora, se recomienda también que tenga una longitud mayor a 8 caracteres y que mezclen letras, símbolos y números, no son permitidos los espacios en blanco.

New password:

Cuando diga Re-enter new password: Simplemente volvemos a escribir la contraseña anterior

Luego nos pregunta si eliminamos los usuarios anónimos, a lo cual respondemos que Y por medidas de seguridad

Remove anonymous users? [Y/n]

Ahora pregunta si el usuario administrador solo puede ser utilizado desde el host local, esto es recomendable por razones de seguridad, a menos que tengas algún requerimiento especial respondemos Y

Disallow root login remotely? [Y/n]

Removemos la base de datos test que es de prueba si queremos respondiendo que Y

Remove test database and access to it? [Y/n]

Por último nos pide que reiniciemos los privilegios para que se efectuen los cambios respondemos Y

Reload privilege tables now? [Y/n]

Listo ya nuestra base de datos MySQL está instalada y segura.

Para comprobar el funcionamiento del servidor MySQL ejecuten el siguiente comando:

mysql -u root -p

Deberá pedirles la clave que colocaron en el paso anterior y aparecerles el prompt mysql> algo parecido a esto:

vensign@lamp-vensign:~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.1.42 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

Vemos que nos muestra la versión del MySQL que acabamos de instalar. Para salir del prompt de mysql y volver al terminal de Linux simplemente escriban exit y presionen Enter o Intro.

Los comandos para administrar MySQL son:

Función Comando Comando Corto
Iniciar MySQL /etc/init.d/mysqld start service mysqld start
Detener MySQL /etc/init.d/mysqld stop service mysqld stop
Reiniciar MySQL /etc/init.d/mysqld restart service mysqld restart
Estatus MySQL /etc/init.d/mysqld status service mysqld status

El archivo de configuración de mysql se encuentra en /etc/my.cnf

Con estos tres pasos ya tenemos instalado un servidor LAMP en Fedora.

Con esto finalizamos el tutorial, ya tenemos un servidor web LAMP totalmente funcional y ya pueden empezar a colocar sus páginas y desarrollar sus proyectos, pronto publicaremos más tutoriales de configuración y seguridad de servidores web así que estén pendientes.

Cualquier duda o sugerencia por favor dejen sus comentarios

jueves, 24 de septiembre de 2009

Crear Foreign Key (Integridad Referencial) con MySQL

Hace unos días que estoy bastante liado buscando información sobre MySQL, claves foráneas (o en inglés, foreign Key) y la Inegridad Referencial…

No es que sea un experto con el MySQL pero intentaré explicar todo lo que he aprendido:

Definición de Integridad Referencial

Podemos entender como Integridad Refencial a la propiedad, aplicada en las Bases de Datos, que nos garantiza que una Entidad (fila o registro) se relaciona con otra entidad que EXISTE en la Base de Datos. Nos aseguramos en todo momento que la información no esté repetida innecesariamente, que exita tal información, relaciones mal hechas…

Definición de Claves Foráneas – Foreign Key

Una clave foránea, o foreign key, no es más que un campo (Entidad) de un tabla que hace referencia al identificador de otra Tabla.

MySQL – Integridad Referencial y las Foreign Key

En las primeras versiones de MySQL (hasta aproximadamente la versión 3.23) la Integridad Referencial no estaba disponible, y a la hora de crear la Base de Datos, esta Integridad debía ser controlada por parte de la aplicación.

A la hora de crear una Base de Datos, el motor por defecto de MySQL es el MyISAM pero a partir de la versión 3.23 (según la Wikipedia en la versión 4 de MySQL) se incorpora el motor InnoDB, que nos permitirá tener Bases de Datos con Integridad Referencial.

Tengo que decir que no sé muy bien como interpreta el motor MyISAM la sintaxis de Foreign Key (por lo que he podido entender… lo interpreta como si fueran CREATE TABLE), pero si puedo asegurar, es que la Integridad Referencial no se aplica nativamente para este motor.

¿Qué es el Motor MyISAM?

Es el motor de almacenamiento por defecto del MySQL. Como propiedades relevantes tenemos que destacar su gran rapidez con las consultas, “ya que no tiene que hacer comprobaciones de Integridad Referencial”. Está realmente optimizado para aplicaciones, sistemas, programas… en las que no hay un número elevado de inserciones.

¿Qué es el Motor InnoDB?

El innoDB es una tecnología de almacenamiento de datos, se caracteriza por soportar transacciones de tipo ACID e incluir la Integridad Referencial. Sé que me repito mucho, pero la llegada de este motor de almacenamiento en MySQL, nos permite definir Claves Foráneas (Foreign Key), y gracias a ello, definir reglas o restricciones que nos aseguren la Integridad Referencial de los registros de la Tabla/Base de Datos.

¿Cómo especificamos el tipo de motor a utilizar en MySQL?

A la hora de crear una tabla hay que indicarle la opción ENGINE. Con esta opción le indicaremos el motor que tiene esta tabla en concreto: MyISAM, InnoDB, BDB, … veamos un ejemplo sencillo:

CREATE TABLE `PRUEBA` (
ID int(10) unsigned NOT NULL auto_increment COMMENT 'IDENTIFICADOR TABLA',
NAME varchar(40) NOT NULL COMMENT 'NOMBRE PELICULA',
DESCRIPTION varchar(255) default NULL COMMENT 'DESCRIPCION PELICULA',
CREATIONDATE timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP COMMENT 'FECHA DADA DE ALTA LA PELICULA',
PRIMARY KEY (ID),
) ENGINE=MYISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

InnoDB vs MyISAM

Antes de llegar a la especificación de cómo crear la Integridad Referencial por código SQL, voy a enumerar primero las diferencias que podemos encontrar en los tipos de motor de almacenamiento InnoDB y MyISAM. ¿Por qué? Porque según la función e implicación que tenga que tener nuestra Base de Datos nos podemos decantar por uno o por otro motor.

InnoDB:

  • Permite el uso de Transacciones: no es más que todo un conjunto de órdenes que se ejecutan como si fueran una unidad de trabajo, dicho de otro modo, que este bloque de órdenes (transacciones) no finalizan en un estado intermedio. Si alguna orden se ha ejecutado y no finaliza la ejecución de todo el bloque de órdenes correctamente, el SGBD (Sitema Gestor de Base de Datos) se encargará (como de un rollback se tratase…) de dejar la Base de Datos en el estado inicial.

  • Las Transacciones son de Tipo ACID: acrónimo de Atomicity, Consistency, Isolation and Durability (o dicho en español: Atomicidad, Consistencia, Aislamiento y Durabilidad).

  • Si nuestra Aplicación utiliza mucho el uso de Inserts y Updates notaremos una gran mejoría respecto al motor MyISAM.

  • La caché de las lecturas y escrituras de los registros se realiza mediante una combinación entre Cachés de registro y de índice. Con lo consecuente, InnoDB no envia los cambios de la tabla al Sistema Operativo (S.O., opción más lenta…) para que los escriba, por lo tanto, es mucho más rápido que MyISAM en según que escenarios.

  • ACTUALIZACIÓN gracias a ikhuerta. Bloqueo a nivel de registro, es decir, por cada petición (Selects, Inserts, updates…) que se haga a la tabla se bloquea a nivel de REGISTRO, en cambio MyISAM bloquea toda la tabla entera hasta finalizar su ejecución, pudiendo así crear una cola de peticiones. Del otro modo, al bloquear solamente el registro necesario, el resto de registros quedan libres para su utilización.

MyISAM:

  • Mayor velocidad en general a la hora de recuperar datos.

  • Es recomendable para aquellas Base de Datos donde predominan los Selects y no los Inserts o Updates.


  • Con la ausencia de Automacidad (no hay comprobaciones de integridad referencial, no hay bloqueos de tablas,…) obtenemos nuevamente una mayor velocidad.

  • Cuenta con una algoritmo de Compresión de Datos muy eficiente, de modo que el espacio en disco, Ram o caché, es realmente inferior al del motor InnoDB. Aunque he leído que el motor InnoDB ha mejorado este aspecto y ya está en práctica en el MySQL 5, reduciendo así un 20% del espacio.


  • No soporta Transacciones, ¿ventaja o desventaja? Según lo que pone la wiki puede llegar a ser una ventaja, por el simple echo que los accesos a disco que tiene el motor InnoDB es de almenos una por cada transacción. Esto supone una limitación de transacciones para los discos duros, de aproximadamente unas 200 por segundo.

Hasta aquí creo que ya es suficiente de teoría, es una buena recopilación de información, ahora pasemos a lo importante: “LOS EJEMLOS”.

Código SQL, para montar la Integridad Referencial

Veamos un ejemplo del Esquema en MER(Modelo Entidad Relación) y MR (Modelo Relacional, después de normalizar el MER), adjunto imagen:

Modelo BD Post MySQL y las FKs


Ahora veamos el código SQL para ver como se crearía esta Base de Datos y todas sus relaciones:

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de datos: `testpostFKs`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `T_COCHE`
--


CREATE TABLE IF NOT EXISTS `T_COCHE` (
`MARCA` varchar(20) NOT NULL,
`ORIGEN` varchar(25) NOT NULL,
`FECHAINICIO` datetime NOT NULL,
PRIMARY KEY (`MARCA`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


--
-- Volcar la base de datos para la tabla `T_COCHE`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `T_COCHE_SERVTEC`
--


CREATE TABLE IF NOT EXISTS `T_COCHE_SERVTEC` (
`IDMODELO` int(10) unsigned NOT NULL,
`IDSERVICIO` int(10) unsigned NOT NULL,
PRIMARY KEY (`IDMODELO`,`IDSERVICIO`),
KEY `IDMODELO` (`IDMODELO`),
KEY `IDSERVICIO` (`IDSERVICIO`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


--
-- Volcar la base de datos para la tabla `T_COCHE_SERVTEC`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `T_MODELO`
--


CREATE TABLE IF NOT EXISTS `T_MODELO` (
`IDMODELO` int(10) unsigned NOT NULL auto_increment,
`NAME` varchar(25) NOT NULL,
`DESCRIPTION` varchar(255) default NULL,
`FECHAEXPEDICION` datetime default NULL,
`DISENYADOR` varchar(25) NOT NULL,
`MARCA` varchar(20) NOT NULL,
PRIMARY KEY (`IDMODELO`),
KEY `MARCA` (`MARCA`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

--
-- Volcar la base de datos para la tabla `T_MODELO`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `T_SERVICIOTECNICO`
--


CREATE TABLE IF NOT EXISTS `T_SERVICIOTECNICO` (
`IDSERVICIO` int(10) unsigned NOT NULL auto_increment,
`NOMBRE` varchar(40) NOT NULL,
`PAIS` varchar(25) NOT NULL,
`PROVINCIA` varchar(25) NOT NULL,
`LOCALIDAD` varchar(25) NOT NULL,
`DIRECCION` varchar(255) NOT NULL,
`TELEFONO` int(10) unsigned default NULL,
`FAX` int(10) unsigned default NULL,
PRIMARY KEY (`IDSERVICIO`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

--
-- Volcar la base de datos para la tabla `T_SERVICIOTECNICO`
--

--
-- Filtros para las tablas descargadas (dump)
--

--
-- Filtros para la tabla `T_COCHE_SERVTEC`
--

ALTER TABLE `T_COCHE_SERVTEC`
ADD CONSTRAINT `T_COCHE_SERVTEC_ibfk_2` FOREIGN KEY (`IDSERVICIO`) REFERENCES `T_SERVICIOTECNICO` (`IDSERVICIO`) ON DELETE CASCADE ON UPDATE CASCADE,

ADD CONSTRAINT `T_COCHE_SERVTEC_ibfk_1` FOREIGN KEY (`IDMODELO`) REFERENCES `T_MODELO` (`IDMODELO`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Filtros para la tabla `T_MODELO`
--

ALTER TABLE `T_MODELO`
ADD CONSTRAINT `T_MODELO_ibfk_1` FOREIGN KEY (`MARCA`) REFERENCES `T_COCHE` (`MARCA`) ON DELETE CASCADE ON UPDATE CASCADE;

Puntos a tener en CUENTA:

  • El motor de almacenamiento es INNODB (Engine=INNODB)


  • El campo o entidad que representa la Foreign Key, para indicarle realmente que es una Foreign Key, primero hay que especificarle que es un INDEX, lo hacemos así: KEY `IDSERVICIO` (`IDSERVICIO`)

  • Hay que indicarle a la Foreign Key la función a ejecutar por parte de la Base de Datos cuando se elimine una Clave Primaria (PK), por ejemplo, si eliminamos una tupla de T_COCHE ¿cómo tiene que proceder la base de datos con las otras tablas que estén referenciadas? Para eso sirve el: ON DELETE CASCADE ON UPDATE CASCADE

miércoles, 12 de noviembre de 2008

Firefox afronta competencia de navegadores por internet


Nadie elige tener a Apple, Microsoft y Google como tu competencia, admitió Mitchell Baker, quien dirige la fundación sin fines de lucro, Mozilla

MOUNTAIN VIEW, ESTADOS UNIDOS. - Firefox despertó la competencia en el tranquilo mundo de los navegadores de internet dominado por el Internet Explorer de Microsoft cuando nadie se atrevía a competir con el gigante del software. Pero ahora se afronta la competencia de sus nuevos rivales.

Firefox empezó a “comerse” el monopolio de Microsoft hace cinco años. Después apareció una versión del Safari de Apple para Windows y, en septiembre de este año, Google presentó su navegador Chrome. El noruego Opera ya estaba en la carrera.

"Nadie elige tener a Apple, Microsoft y Google como tu competencia", admitió Mitchell Baker, quien dirige la fundación sin fines de lucro, Mozilla, cuya división Mozilla Corp desarrolla Firefox.

Baker explicó que el punto fuerte de Firefox es que es un producto de código abierto, que puede aprovechar las ideas de miles de programadores de todo el mundo y reunirlas en un producto de consumo.

“Nuestro liderazgo viene de nuestra capacidad única para tomar las ideas producidas por otros, comprender cuáles son los puntos realmente importantes y aplicar eso a una audiencia general de consumo", explicó Baker.

Las apuestas que están en juego en esta batalla son enormes porque en la actualidad el navegador de internet es posiblemente la aplicación más importante del mundo, ya que sirve de puerta de entrada para acceder a los correos electrónicos, noticias, redes sociales, anuncios, comercio electrónico, juegos, películas, bancos y, en gran parte, juego y pornografía.

 En el 2004, Firefox comenzó su andadura en un mercado monolítico dominado por el Internet Explorer de Microsoft.

SIN COMPETENCIA

"No había competencia y Microsoft no tenía incentivos para invertir. El IE (Internet Explorer) prácticamente languidecía", comentó David Smith, analista de Gartner. Mozilla lo vio como una oportunidad para un grupo de código abierto y sin ánimo de lucro.

Hoy en día, Firefox supone el 20 por ciento del mercado de navegadores, Microsoft poco más del 70 por ciento y Apple Safari el 6,5 por ciento, según marketshare.hitslink.com. Chrome y Opera abarcan cada uno menos del 1 por ciento, aunque algunos expertos describen el navegador móvil de Opera como el mejor.

"Hay un techo de cristal" para los rivales de Apple y Windows, porque muchos usuarios no se molestan en cambiar el navegador que viene con su ordenador, afirmó Al Hilwa, analista de IDC. Sin embargo, Baker difirió.

Google ha invertido en desarrollar un navegador que estreche la brecha ente el escritorio y el llamado "cloud computing", destacó PC World. La empresa se especializa en este modelo de computación, ofreciendo aplicaciones que funcionan en servidores centrales. 

Baker señaló que Mozilla es distinta, porque no intenta relacionar su navegador con otros productos.

 

martes, 4 de noviembre de 2008

Soluciones de telefonía IP, el futuro de las telecomunicaciones.

A un año de su lanzamiento en México, Getfon ha reforzado su oferta con un crecimiento constante y de pasos seguros

CIUDAD DE MÉXICO.Getfon fue creada en 2003 y desde entonces se ha convertido en uno de los servicios más avanzados de Telefonía IP en Latinoamérica. Ha sido puente entre la brecha que existe en las formas tradicionales de telecomunicaciones y la red de convergencia.

Cuenta con una importante y creciente presencia en México, aunque su fundación y matriz es en Utah, Estados Unidos, donde también destaca como uno de los principales jugadores en esta industria.

Con más sucursales dentro del país; GetFon ha venido realizando en tiempos recientes grandes esfuerzos, y hoy más que nunca que el término de la portabilidad numérica ha llegado a México, GetFon se ha convertido en la mejor opción de telefonía.

Es por eso que nos dimos a la tarea de entrevistar al Director Comercial de Getfon para México, Andrés Woodhouse; quien nos platica de qué trata la empresa de telefonía IP, en qué consiste, sus beneficios, ofrecimientos y el panorama que actualmente juega en nuestro país.

Lo que realmente ofrece Getfon, es que con su tecnología de clase mundial ofrece soluciones conectar y usar que cubren un amplio rango de necesidades, desde el usuario individual, hasta las empresas en desarrollo, con soluciones y productos más avanzados del mercado.

Ahora, para que la telefonía IP trabaje, existe el factor fundamental que es el ancho de la banda de internet, requerido para que todos los servicios funcionen con las expectativas que un usuario de línea tradicional requiere. Ya que es importante mencionar, que la solución Getfon esta totalmente madura como para competir con las líneas tradicionales, mezclarlas e incluso y si se desea, sin necesidad de cambiar el número original.

En el transcurso de un año Getfon ha lanzado planes de llamadas locales que era una gran demanda de la gente por la competencia natural y percepción de jugadores tradicionales en la industria de la telefonía común, lo que ayudó bastante para reaccionar a las expectativas y adecuar planes para el mercado y el sector Pyme, lo que ahora se llama plan Smart, en donde un usuario puede tener su paquete a la medida justo para lo que consume, con servicios como llamadas locales, internacionales, a celular, 01800s, etc.

“Hoy en día, la movilidad, ubicación, practicidad, oficinas virtuales en cualquier parte del mundo, entre otras cosas, son las necesidades del empresario que requieren ser descartadas para el debido progreso de la misma; y por supuesto éstas son sólo algunas de las ventajas que ofrece Getfon y que poco a poco se vuelven más evidentes en el mercado” aseveró Andrés Woodhouse.

“Con nuestro servicio de IP, hemos podido entrar a empresas de gran tamaño como Grupo Sanmina, Hoteles Melia, Agencia Autonova, entre otros.” Afirmó el Director.

Y es que desde enero 1 de 2007, GetFon ya contaba con más de 4 mil clientes que utilizan su servicio.

 

martes, 21 de octubre de 2008

GROUPING

Indica si una expresión de columna especificada en una lista GROUP BY es agregada o no. GROUPING devuelve 1 para agregado y 0 para no agregado, en el conjunto de resultados. GROUPING sólo se puede usar en la lista de SELECT , cláusulas HAVING y ORDER BY cuando se especifica GROUP BY.

Sintaxis

GROUPING ( column_expression )

Argumentos

Es una columna o una expresión que contiene una columna en una cláusula GROUP BY.

Notas

GROUPING se utiliza para distinguir entre los valores NULL devueltos por ROLLUP, CUBE o GROUPING SETS y los valores NULL normales. El valor NULL devuelto como resultado de una operación ROLLUP, CUBE o GROUPING SETS es un uso especial de NULL.Actúa como marcador de posición de columna en el conjunto de resultados y significa "todos".

SELECT  TipoTransaccion,
         Divisa, 'Todas las Divisas'=GROUPING(Divisa), 
         SUM(Cantidad) Cantidad
         FROM Movimientos GROUP BY TipoTransaccion, Divisa 
         WITH CUBE
 
TipoTransaccion         Divisa         Todas las Divisas    Cantidad    
----------------------- -------------- -------------------- ----------- 
Entrada                 NULL           0                    2000
Entrada                 Dolar          0                    6200
Entrada                 Euro           0                    10600
Entrada                 Libra          0                    4500
Entrada                 Yen            0                    45000
Entrada                 NULL           1                    68300
Salida                  Dolar          0                    7000
Salida                  Libra          0                    1700
Salida                  Yen            0                    30000
Salida                  NULL           1                    38700
NULL                    NULL           1                    107000
NULL                    NULL           0                    2000
NULL                    Dolar          0                    13200
NULL                    Euro           0                    10600
NULL                    Libra          0                    6200
NULL                    Yen            0                    75000
(16 filas afectadas)
                 

Como se ve hay dos tipos de NULL en la columna de divisas. Las que corresponden al último registro que insertamos que tiene un NULL en divisa, y al que la función GROUPING le asocia un 0, y el NULL que podemos traducir por "Todas las divisas" al que la función GROUPING le asocia un 1.

Clover.ETL

clover.ETL es un Open Source, basado en Java marco de integración de datos que pueden ser utilizados para transformar los datos.

Si bien la utilización de la tecnología Java que permite independencia de la plataforma. Se puede utilizar independiente - como una aplicación de servidor o puede ser empotrado en otras aplicaciones como una biblioteca de la transformación. 

Clover.ETL es liberado bajo doble licencia:

  • ·         comercial
  • ·         Licencia LGPL.

Características destacadas

·         internamente representa a todos los datos de caracteres Unicode como - cualquier carácter de cualquier códigos pueden ser representados - ASCII, LATINA, ASIA, etc

·         convierte a partir de los datos comunes y conjuntos de caracteres (ASCII, UTF-8, ISO-8859-1, ISO-8859-2, etc)

·         contiene la paleta de más de 40 componentes especializados de transformación

·         nativelly soporta todos los principales estándares de la industria de bases de datos (Oracle, MS SQL, DB2, Infromix, Sybase) y varias variantes de código abierto (MySQL, PostgreSQL). Otras bases de datos cuentan con el apoyo a través de la capa JDBC

·         lee y escribe datos XML / Excel (XLS) de datos y datos de longitud variable (CSV) / fix-datos de longitud y varios otros no tan comunes formatos (dBase / FoxPro / FlashFiler)

·         apoya distancia de lectura / escritura de datos a través de FTP / SFTP / HTTP / HTTPS protocolos, también trabaja con ZIPed y GZIPed datos

·         se ejecuta en 32 bits y 64 bits plataformas - Windows, Linux, AIX, Solaris, HP-UX, AS/400 y muchos otros

Más novedades

  • ·         registros de datos se manejan internamente como una variable de longitud estructuras de datos - puede manejar archivos muy grandes
  • ·         campos pueden tener valores por defecto, formatos de texto, el valor NULL checkers
  • ·         contiene los conectores a otros sistemas a través de protocolos estándar: middleware - JMS, LDAP, SOAP
  • ·         transformación de los datos se realiza por componentes independientes, cada uno de ellos ejecuta como un hilo independiente - puede utilizar más de una CPU (es muy escalable)
  • ·         marco implementa llamado gasoducto-paralelismo - al registro de datos es procesado por componente, que son inmediatamente enviados a la siguiente componente de procesamiento adicional.
  • ·         contiene especializados intérprete de lengua de transformación - CTL
  • ·         transformaciones (asignaciones) de los datos también pueden ser codificados directamente en Java o cualquier otro lenguaje de scripting
  • ·         metadatos que describen las estructuras de datos (registros) y las transformaciones puede ser leído / escrito del / a XML
  • ·         trabaja con el código fuente común de Sistemas de Gestión - CVS, SVN, SourceSafe
  • ·         puede ser ampliado fácilmente por componentes personalizados

 

viernes, 17 de octubre de 2008

Office 2007 vs. OpenOffice 3.0.


El paquete para oficina de código abierto más popular ha tenido una actualización mayor hace unos pocos días. Bien, con la versión final ya disponible.

Oficina estilo Open Source

No es malo comenzar con un poco de sinceridad: La versión 2.4.1 de OpenOffice teníavarios problemas. Falta de estabilidad, demoras en su ejecución y problemas de compatibilidad con ciertos formatos dejaban un asterisco o dos en su expediente. Pero la gente de Sun ha ajustado las tuercas necesarias, y desde el 13 de octubre pasado ya se puede descargar la nueva y mejorada versión 3.

¿Qué trae de nuevo?Algunas de sus funciones ya son conocidas para quienes hayan estado probando su versión beta, pero para quienes no tienen idea de qué incorpora el nuevo paquete, he aquí un repaso. En primer y fundamental lugar, OpenOffice 3 confirma sucompatibilidad con el formato docx generado por Office 2007 para PC y 2008 para Mac. Con la versión 2.4.1 sencillamente no había forma de abrir uno de estos documentos, pero ahora OpenOffice (siendo más específicos, la aplicación Writer) puede manejar este formato sin ninguna clase de conversión externa.

 

domingo, 12 de octubre de 2008

Nace red hermética a prueba de hackers.

La idea nace hace 25 años por expertos de IBM y en la actualidad se convierte en una solución real

La idea de un sistema inmune a cualquier tipo de hacker, es ya un hecho. De momento, se ha conseguido un primer paso, que se ha presentado en un congreso sobre computación en Viena: una red cuántica que unía seis ordenadores (unos en la capital austriaca, otros en la vecina Saint Poelten).

El sistema es, inquebrantable. Al ir la información contenida en propiedades cuánticas de los átomos, tales como la polarización, cualquier posible hacker rompería su estado, y alteraría su contenido.

Es una aplicación práctica del principio de incertidumbre que Heisenberg formuló en 1927, que simplificado no se pueden determinar, simultáneamente y con precisión, ciertos pares de variables físicas. Por ejemplo, en este caso, la posición y el estado de una partícula subatómica. De esta manera si alguien interaccionara con una emisión de los bits cuánticos para saber su estado, lo alteraría, publicó el elpais.com.

La idea de utilizar esta propiedad en los ordenadores fue formulada por Charles Bennett, de IBM, y Gilles Brassard, de la Universidad de Montreal (Canadá) hace 25 años, y, desde entonces, su búsqueda es una prioridad de gobiernos y grandes corporaciones.

Y no sólo para garantizar la seguridad de las transmisiones, sino la de los datos guardados en sí mismos, con la idea de suplir los actuales chips de silicio por otros a escala subatómica, con mucha más capacidad por milímetro cuadrado además de ser inviolables.

 

martes, 30 de septiembre de 2008

Quiere Europa liderar desarrollo de Web 3.0

La Web 3.0 sería una nueva generación del uso de internet que mejorará la gestión de datos y supondrá un importante apoyo para las empresas. 

La Comisión Europea (CE) presentó un informe sobre cómo Europa debe responder a la nueva etapa de la revolución de la información y liderar la expansión de la "Web 3.0", una nueva generación del uso de internet que mejorará la gestión de datos y supondrá un importante apoyo para las empresas.

Esta nueva forma de utilizar internet incluye tendencias como las redes sociales, los servicios empresariales en línea, los sistemas GPS y la televisión móvil, o el aumento de las etiquetas inteligentes, que permiten manejar la información de forma más fácil.

Según el documento, Europa está "bien situada" para beneficiarse de esta revolución, porque sus políticas pretenden impulsar las redes de telecomunicaciones que favorecen la competencia, y que además protegen la vida privada y la seguridad de los ciudadanos.

Para la comisaria europea de Sociedad de la Información, Viviane Reding, la Web 3.0 es sinónimo de actividades comerciales, sociales y recreativas, que se pueden llevar a cabo "en cualquier lugar y en cualquier momento", sobre la base de redes "rápidas, fiables y seguras".

Como complemento al informe, la Comisión ha iniciado una consulta pública sobre políticas e iniciativas privadas para explotar las posibilidades de la Web 3.0.

Por otra parte, ha publicado un nuevo índice de prestaciones de banda ancha, que tiene en cuenta factores como la velocidad, el precio, la competencia o la cobertura, y que muestra que Suecia y Holanda están a la cabeza de Europa.

La mitad de los internautas europeos tenía a finales de 2007 un acceso de banda ancha de más de dos megabytes por segundo, una velocidad dos veces superior a la del año precedente y que permite, por ejemplo, ver la televisión a través de internet.

Asimismo, las conexiones de alta velocidad abarcan ya 70% de la población rural de los Veintisiete, una cifra que tiende a aproximarse a la de la cobertura total, que se sitúa en 93%.

Según Bruselas, esto quiere decir que el internet de nueva generación cada vez tiene más usuarios, y que "su potencial para la economía europea es manifiesto".

En ese contexto, la Comisión señala que el llamado "internet de los objetos" se convertirá en el medio de interacción de máquinas, vehículos, aparatos, sensores y muchos otros dispositivos, y calcula que más de mil millones de teléfonos estarán equipados con esta tecnología para 2015.

Gracias a él, los billetes electrónicos de transporte son ya una realidad, mientras que los dispositivos móviles podrán intercambiar datos para realizar pagos o para obtener información.

Por último, considera que la UE debe mantener la Red abierta a la competencia, evitar restricciones injustas en las posibilidades de elección de los consumidores, proteger su confianza y financiar la investigación sobre internet en los próximos años.

El buscador de internet Google ya ha expresado en un comunicado su buena acogida a este informe sobre las redes futuras, y ha destacado en especial que internet sólo prosperará si sigue siendo gratuito y abierto.

 





La Biblia de MySQL


MySQL supera desde hace tiempo a muchas soluciones comerciales en velocidad y dispone de un sistema de permisos elegante y potente, y ahora, además, la versión 4 incluye el motor de almacenamiento InnoDB compatible con ACID.