martes, 29 de septiembre de 2009

Controlar Web Farms Applications

Desarrollar Web Site bajo ASP.Net es realmente sencillo, donde con pocos conocimientos puedes desarrollar tu sitio sin tener que hacer un gran inversión en tiempo y dinero para iniciarte en este mundo, a diferencias de otros tecnologías Web. Pero a la hora de desarrollar herramientas más complejas, las cosas no son tan sencillas como muchas veces aparecen en Internet y es el punto donde comenzamos a visualizar errores extraños que son casis imposibles de depurar. Un ejemplo de estos es cuando tenemos que desarrollar un sitio Web que va a ejecutarse en varios servidores conocidos como Web Farm, y donde hay algunos detallitos que tenemos que tomar en cuenta a la hora de manejar los estados de la aplicación, como son las variables de application, session y Cache.

Lo primero que debemos hacer es definir en el Web.Config le identificador de la máquina que va a ejecutar una determinada página cuando sea solicitada por el Web farm. Para eso debemos generar un llave para comparar que debemos colocarla en la sección de tu machine.config o web.config:

<machine validationKey="0000...0000"
decryptionKey="00...00"
validation="SHA1"
decryption="AES"
/>
El validationkey debe ser de 64 bites (128 caracteres hexadecimales) mientras que el decryptionkey de 32 bytes (64 caracteres hexadecimales).

Para más información pueden visitar:
http://msdn.microsoft.com/en-us/library/ms998288.aspx

Otra técnica es guardar los state server en SQLServer mediante la configuración Stateserver o sqlserver de ASP.Net Sessions en vez de Inproc, con esto evitamos tener la sesión almacenada físicamente en un lugar donde cualquiera de los servidores puedan acceder a la misma.

miércoles, 23 de septiembre de 2009

Evento Microsoft 26 de Septiembre

Este 26 de Septiembre del 2009, en el hotel Jaragua de la ciudad de Santo Domingo se estará celebrando un evento auspiciado por Microsoft orientado a todos aquellos que desean conocer sus nuevas herramientas, IE 8, Windows 7, entre otras. Entre los invitados se encuentran Federico Mullens e Ismael Méndez, dos personas con muchos concocimentos utilizando herramientas Microsoft y desarrollo de aplicaciones seguras.

Hay nuevos expositores, así que esperemos que Microsoft nos traiga buenas nuevas, en un momento donde la competencia se hace mucho mayor con otras grandes empresas que tienen muy buenos productos sustitutos en el mercado.

Nos vemos por allá a partir de las 4:00 p.m. hasta las 9:45 p.m. Después del evento les voy a traer algunas impresiones sobre el mismo.

lunes, 21 de septiembre de 2009

Software PVR (Personal Video Recorder)

Ahora que la tecnología de televisión está tan avanzada, y muchas empresas de cables te ofrecen grabar tus series de televisión preferidas, tener un control de la programación de tus canales favoritos, entre otras opciones menos conocidas; los softwares de tipos PVR han perdido un poco de notoriedad en el mercado, tomando en cuenta que ya no tenemos que disponer de un computador y una buena tarjeta de captura para poder grabar o retransmitir nuestros programas favoritos.

Pero, todavías estos software ofrecen alternativas muy superiores a las empresas de cable, como puede ser múltiples programaciones de grabación, retransmisión en vivo sobre el internet, distintos formatos de grabación, descargas de guías interactivas, entre otras opciones. Para eso les voy a nombrar los principales software de grabación de videos personales que hay en el mercado:

1 - GB-PVR: software gratis, de licencia freeware, uno de los mejores softwares de grabación que hay en el mercado, te permite grabar y retransmitir en vivo, soporta múltiples turner de grabación con una sola tarjeta al mismo tiempo. Solo trabaja sobre Windows, y puede funcionar como media server. No necesita mucho requerimiento de hardware para funcionar de forma estable. Valoración: 9.5
2 - MediaPortal: Open Source, muy buen sistema de grabación, soporta múltiples turner de grabación, funciona como mediaserver y corre solo en windows. En la actualidad, necesita de mucho recursos para grabar múltiples canales a la vez. Valoración 9.0.
3 - MyThTV: Software Open Source: trabaja sobre Linux, Mac y Windows, soporta múltiples turner de grabación, funciona como mediaserver. Graba sobre casi todos los formatos de videos soportados, al igual que el mediaportal necesita mucho requerimiento de hardware para las grabaciones. Valoración: 8.5.
4 - Otros Softwares: SageTV(US$79.95), EyeTV (US$79.99), Freevo (descontinuado) y Beyond TV (US$99.99). Estos sofware algunos no soportan múltiples turner de grabación y no son favorables precio - rendimiento. Valoración 6.5

Ahora que saben cuales son los software adecuados para instalar su propio media center en su hogar, les voy a indicar cuales son las mejores tarjetas disponibles en el mercado:

- Hauppage: permite grabas hasta 3 turner en una misma tarjeta, actualmente es la mejor en el mercado para este tipo de grabaciones.
- ATI HDTV
- Fusion HDTV

Firebird

En este blog he hablado mucho de distintos motores de base de datos muy utilizados en el mercado, sin importar si son propietarios o libres. Entre los motores de base de datos analizados por nosotros tenemos MS SQL Server, DB2, Oracle, MySQL y PostgreSQL. Ahora le vamos a hablar sobre un motor menos conocido, pero una consulta que me hicieron hace unos días en este blog, decidí realizar unos testing sobre el particular. El motor de base de datos del que les hablo es Firebird, que se encuentra actualmente en su versión 2.1.3.

Este motor de base de datos viene en dos ediciones, Classic Server y Super Server. Estas ediciones se encuentran disponible tanto para Linux como Windows, pero el Classic Server en Windows no es del todo segura según los desarrolladores de Firebird. Pueden trabajar bajo 32 bits o 64 bits, según le convenga.

Cuando instala Firebird en Windows, puede localizar dos servicios Firebird Guardian y Firebird Server. Ahora, Firebird no tienen una herramienta visual para administrar la base de datos, pero en la dirección http://www.ibphoenix.com puede encontrar algunas opciones de administración que no son muy amigables que digamos.

Para acceder mediante sentencias sql podemos hacerlo mediante DOS entrando al directorio de firebirt\bin>isql# y mediante las sentencias connect o create databases puedes acceder especificando un nombre de base de datos.

Mi opinión: no me gustó mucho lo que vi, creo que postgreSQL (no me gusta mucho que digamos, pero es bastante poderosa y de bajo costo) y MySQL (mi preferida de bajo costo) le llevan la milla, es poco amigable y está basado en SQL 92, que es muy crudo para estos tiempos, hace 10 o 12 años cuando comenzamos a hacer pininos en programación hubiera sido un éxito, pero no hoy en día.

viernes, 18 de septiembre de 2009

Desahogo

En esta oportunidad no voy a hablar sobre base de datos, técnicas de programación ni alguna que otra noticia relacionada con el mundo de la tecnología. Hoy quiero expresar mi gran malestar que estoy sintiendo con las cosas que veo en mi querido país República Dominicana.

La situación del país es preocupante, uno de los pocos países latinoamericanos que no ha logrado solucionar los graves problemas eléctricos que provocan apagones de hasta 12 horas en casi todo el territorio nacional. El auge de la delincuencia es alarmante, y el consumo de drogas (cocaína, marihuana, entre muchas otras) es cada vez mayor. Hace unos días salió a relucir que el país era el número 7 en todo el mundo en tráfico de drogas sirviendo como puente de Colombia a Estados Unidos.

Hasta donde las autoridades van a seguir permitiendo eso, la seguridad nacional es casi inexistente, ya que al parecer de cada 10 militares, 8 son corruptos. Y sin contar la gran cantidad de militares que le han quitado la visa el gobierno norteamericano o han solicitado su extradicción.

La cantidad de dinero que se mueven en transacciones de bienes raíces es abrumadora, y eso que existe una ley que obliga a las empresas de bienes raíces, dealer y bancos indagar sobre cualquier transacción mayor a los US$10,000 que se haga en el país. El país se ha convertido en una gigantesca lavadora que funciona como paraíso fiscal para grandes narcos (Colombianos, puertorriqueños, Alemanes y españoles).

La diferencia social y económica entre las clases sociales es increíble, como dirían los economistas y sociólogos la falta de equidad en el país ha abierto un espacio abismal entre los distintos niveles sociales, donde tu eres muy rico o demasiado pobre. La clase media es casi inexistente en esta sociedad.

Este país al igual que otros latinoamericanos que están pasando por la misma situación se están convirtiendo en nacionales gobernadas por gavilleros, donde el que tenga más poder o dinero hace lo que le da la gana, sin importar como ha conseguido su fortuna, como dicen por ahí, “detrás de una gran fortuna hay un gran secreto”.

1 - ¿Por qué las autoridades gubernamentales no investigan de donde proviene todo ese dinero en esas grandes torres que se construyen en el país?

2 - ¿Como un país tan pobre tiene tantos vehículos de lujos, desde Ferrari, Porsche, BMW, hasta Maserati?

3 - ¿Cómo es que existen más de 4.1 millones de pobres en este país, y cuando me refiero a pobre, me refiero a personas que no saben como van a comer mañana?

4 - ¿Cómo es posible que un diputado gane casi 35 veces sobre el sueldo mínimo para ir a levantar la mano en la cámara de diputados, ya que no hacen más de ahí?

5 - ¿Qué puede explicar que un director gubernamental tenga más de 30 familiares en la nómina de la institución que dirige, y algunos con sueldos de lujos?

Tenemos que cambiar nuestra cultura, intentar ayudar al desposeído, no querer aspirar a un cargo público para hacerme rico de la noche a la mañana, ustedes deben ser el ejemplo, como un político o militar puede señalar a un vendedor de estupefaciente si ellos hacen lo mismo o más. Eso es lo que le vamos a enseñar a los que están subiendo, a esos niños que lo ven como ejemplo, ahora mismo, para esos niños el ejemplo son esos grandes narcos que de la noche a la mañana se han hecho rico y ustedes lo están apoyando.

Vamos a orar porque algunas cosas cambien en este país, de lo contrario, estado fallido será un término muy ligero para llamar a nuestro país.

jueves, 17 de septiembre de 2009

DB2-Express C

Al igual que la competencia en motores de base de datos, DB2 presenta una opción express (que se puede descargar gratis para todo público), que al igual que sus competidores (MS SQL Server y Oracle) tiene su versión lite para pequeñas empresas con menos características que su producto enterprice. Pero que diferencia a este motor de base de datos de los que presentan los competidores:

  1. Primero, No tiene límites de espacio, que solo te permiten una cantidad específica de espacio en disco. DB2 Express C te permite manejar la cantidad que desee de información en su base de datos.
  2. Incluye PureXML sin costo alguno, que es la tecnología única que tiene DB2 para manejar documentos XML de forma nativa.
  3. Puede correr en cualquier sistema operativo soportado por la versión enterprice, no importa si es de 32 o 64 bits o la cantidad de núcleos que tenga. Esta versión solo utilizará 2 núcleos y 2 GB de memorias y 4 núcleos y 4 GB de memoria para subscripción por 12 meses.
  4. Puedes vender tu aplicación con DB2 sin necesidad de tener que pagar por la licencia.
  5. No tiene límites de conexiones.
Que no tiene este motor de base de datos:
  1. soporte para particionar tablas y base de datos (incluida en la enterprice y server edition).
  2. Compresión de backups.
  3. Performance Exper (una especie de profiler en mssql server).
  4. Paralelismo de consultas.
La C de DB2-Express C significa Comunidad, y lo que busca es crear una cultura a los usuarios (desarrolladores y administradores) de esta base de datos como hicieron en su tiempo MySQL y PosgreSQL. Vamos a ver que negocio hay detrás de todo esto, ya que IBM no regala lo suyo por amor al arte. Esto así, porque la idea es que conozcan su producto, y muchas empresas se están dando cuenta que el uso de Trail no es muy agradable a los usuarios, por lo que están recurriendo a estas versiones express y así fomentar una cultura de uso.

Hasta el momento, el soporte solo es gratis en los foros, el servicio 24/7 es solo para quienes han comprado la licencia de la edición DB2 o puedes subscribirte en su web site.

Para más información pueden visitar el sitio web y descargar la versión express que nos tienen DB2, que sin dudas es uno de los mejores motores de base de datos en el mercado, sino el mejor, por encima de MSSQL y Oracle (así como lo escribo), el único contra que tiene este motor es que los softwares IBM son demasiados propietarios y poco mercadeados a diferencia de los antes mencionados.

miércoles, 16 de septiembre de 2009

Algunas definiciones de términos que usamos día a día

Geek: se refiere a una persona fascinada con la tecnología y la informática, adoptan este medio como un estilo de vida. Los Geek pueden ser de dos tipos:

Geek Innovador: es aquel que tiene lo último del mercado, sin importar el costo.
Geek Seguidor: aquel que no tiene el presupuesto para adquirir lo último del mercado, pero siempre le da seguimiento y lo adquiere de segunda mano.

A pesar de ser pro-tecnología, no me considero un Geek, ya que no soy obsesionado con nada.

Friki: es un término coloquial para definir algo extraño, extravagante o estrafalario. Para muchos es una forma de vida, y es un término acuñado del inglés y popularizado por la televisión norteamericana.

Nerd: persona obsesionada con realizar tareas intelectuales con altos conocimientos en diversos temas. Los Nerds por lo general son introvertidos, distintos a los Geeks que son más extrovertidos.

Hacker: persona con amplios conocimientos en seguridad informática o en depuración de errores de sistemas informáticos. Los hackers muchas veces buscan proteger la seguridad informática, conocidos como White Hacks, y trabajan en su mayoría en grandes corporaciones.

Cracker: persona con altos conocimientos en seguridad y sistemas, pero a diferencia de los hackers, estos buscan hacer daños eliminando medidas de seguridad o eludiéndolas. El cracker se vale de la reingeniería inversa para hacer sus atrocidades, como Keygen, seriales y cracks. El término viene de criminal hacker.

Gurú: término hindú para referirse a un Maestro espiritual. Es más que un profesor en las culturas asiáticas. Un gurú es poco humilde, tiene un gran ego y sapiencia, lo que lo hace tener un alto conocimiento en distintos temas gracias a la experiencia desarrollada a través de los años.

Hasta los Geek tienen sus mandamientos

Viendo un blog hermano, acabo de ver un listado de mandamientos de los Geek, que suenan un poco interesante y si lo notan están muy atados a una idea ética que muchos informáticos no cumplen, ya que ven todo como negocio sin importar las implicaciones que puedan tener.

1. No usarás una computadora para dañar a otros.
2. No interferirás con el trabajo ajeno.
3. No indagarás en los archivos ajenos.
4. No utilizarás una computadora para robar.
5. No utilizarás la informática para realizar fraudes.
6. No copiarás o utilizarás software que no hayas comprado.
7. No utilizarás los recursos informáticos ajenos sin la debida autorización.
8. No te apropiarás de los derechos intelectuales de otros.
9. Deberás evaluar las consecuencias sociales de cualquier código que desarrolles.
10. Siempre utilizarás las computadoras de manera de respetar los derechos de los demás.

Hasta donde vamos a llegar, esperemos que después de leer esto, algunos cumplan con estos puntos, ya que así ayudamos al crecimiento de nuestra sociedad.

lunes, 14 de septiembre de 2009

Microsoft monopolizando el Internet

Hace unas semanas le comenté sobre los acuerdos de Microsoft y Yahoo para poder hacer frente a Google en el mercado de Internet. Ahora sale una noticia donde se acusa a estar empresas de querer monopolizar el mercado de búsqueda, por lo que la división anti monopolio del departamento de justicia de los Estados Unidos se encuentra investigando ese negocio.

La información fue ofrecida a finales de la semana pasada por ambas empresas, y esta investigación puede durar meses según los reportes. Estas empresas esperan cerrar su trato para el 2010, por lo que esperan que este reporte salga lo antes posible.

No entiendo esta investigación, cuando entre Microsoft y Yahoo cuentan con menos del 30% del mercado que domina Google con un 65%, al parecer donde quiera que se dice Microsoft aparece una treta de monopolizar un determinado mercado.

Esperemos que las cosas fluyan de forma positiva, ya que actualmente el dominio de Google es demasiado grande a nivel de Internet, y eso al final puede perjudicar el mercado, ya que no van a tener ningún tipo de competencia.

fuente: http://www.cnnexpansion.com/tecnologia/2009/09/11/eu-amplia-revision-a-yahoomicrosoft

domingo, 13 de septiembre de 2009

Oracle 11 G Release 2

Ya se encuentra disponible en el mercado la última versión de una de los principales versiones de los motores de base de datos en el mundo, Oracle 11 G Realease 2, que trae nuevas mejoras y unos costos Más bajo. Entre las mejoras que nos trae este nuevo realease tenemos:

- Mejora en la ejecución de Oracle en la memoria caché, acelerando de esta manera los procesos de negocios, habilitando a el negocio a laborar el tiempo real. Muy importante para operaciones de Datawarehousing.
- Un menor costo de operación.
- Mejoras en la seguridad del Enterprices.


Caso Microsoft Dominicana

Acabo de ver en un blog hermano de la República Dominicana que la empresa Microsoft Dominicana se había desvinculado de Microsoft Corp., y así funcionar de forma independiente de la filiar estadounidense. Según el blog, la información fue ofrecida por Juan Lora, Gerente de Microsoft Dominicana, que indica que con este movimiento se busca fomentar la innovación e incrementar el impacto social en el país.

Espero que esta información sea correcta, y que Microsoft Dominicana logre un avance significativo en nuestro mercado, ya que es una empresa que prácticamente pasa desapersivida, otras empresas que funcionan como partner de Microsoft en el país tienen más impacto que ésta en el país.

La empresa se mantiene en un perfil bajo, quizás por la misma política de la corporación norteamerica que hasta principio de año no era muy dada a gastar en mercadeo y publicidad, sino que sus aliados fabricantes de hardware hacían la promoción de su producto a un costo muy bajo. Por lo tanto, esperemos que desde ahora en adelante escuchemos otras noticias de la empresa.

Fuente

miércoles, 9 de septiembre de 2009

Optimizaciones de códigos VB 6

Como dicen por ahí, "Cada cabeza es un mundo" y otro que dice "Se puede llegar al mismo destino por varias vías". Hoy les voy a contar un anécdota de algo que me sucedió el día de hoy donde un programador me dice que es más "óptimo" leer un XML dentro de un bucle formado por While...Wend en VB 6 que usando un For..Next. Realmente, lo miré y mostré una sonrisa sarcástica, ya que como dice el dicho hay varias formas de llegar al mismo destino, y mucho más en programación. El ejemplo era el siguiente:

For i = 0 to nodes.chilnodes.lenght -1
valor = nodes.chilnodes(i).selectsinglenode("valor").text
Next i

la corrida con este bucle tardó 4.64 segundo leyendo el archivo completo, que es de unos pocos megas. De la otra forma:

Set onode = onodes.nextnode()
While Not onode Is Nothing
valor = onode.selectsinglenode("valor").text
Set onode = onodes.nextnode()
Wend

tardaba 4.65 segundos la corrida del archivo completo.

Al final, para lo que se desea el programa, la forma de leer el XML no influye en una aplicación que no vaya a forma XML gigantes, y no es cierto que el bucle con While es más óptimo que el For. Con esto solo quiero demostrar que muchas veces los programadores caen en el error de criticar una determinada forma de realizar un proceso implementado por un colega, sin antes sentarse a analizar porque esa otra persona tomó la decisión de realizarlo de tal manera.

lunes, 7 de septiembre de 2009

Análisis, Diseño y Programación

En latinoamérica se acostumbra a asignar muchas tareas a un empleado por parte de los empleadores, en R.D. se le conoce a las personas que hacen muchas cosas como "todologos". Esto es así que existen departamentos de servicios generales, donde las personas que pertenecen a dichos departamentos realizan cualquier tarea dentro de la empresa. El campo de la informática no escapa a esa cultura empresarial, donde vemos que las tareas de 3 puestos distintos son realizados por la misma persona.

Un encargado de redes tiene la tarea de administrar la plataforma de los sistemas operativos y el soporte técnico. Así pasa para aquellos que laboran en el área de desarrollo de plataforma donde la misma persona realiza todas las labores, análisis de los requerimientos, análisis de la base de datos (en caso de necesitarla), diseño y programación, así como las auditorías y puestas en marcha; todo lo que los libros dicen que no debe realizarse.

Por eso, es que muchos productos latinos son desarrollados con deperfectos y lanzados al mercado con lagunas que son ocultadas por aquellos que programan el producto, lo auditan y los prueban. Como buena técnica de desarrollo de software se debe separar cada una de las tareas que se realizan, veamos:

Análisis: analizar el problema y describirlo, analizar todas las variables que entran en juego en el problema que se busca solucionar, en otras palabras, es llevar a cabo el levantamiento de que es lo que se debe hacer y cuales son las necesidades del cliente y evaluar los conceptos que tiene el cliente con el mundo real. Esta persona que realice esta tarea no tiene que ser informático, pero si una persona que tenga un conocimiento general de lo que ofrece el mercado y con una alta capacidad de identificación de necesidades tanto técnica como económica.

Diseño: conlleva llevar a cabo la definición del proceso modelado de que es lo que quiere el cliente. Mediante el diseño se define el proceso de aplicar las técnicas y principios analísticos para plasmar lo que desea el cliente a la realidad. Este paso es fundamental (para mí el más importante), se necesita que la persona que lleve esta tarea tenga mucha experiencia como analista o desarrollador y que se mantenga actualizado con las nuevas tecnologías que se encuentran en el mercado.

Programación: aquí se traslada las especificaciones del diseñador en los códigos fuentes que van a generar el ejecutable. Esta tarea es más mecánica, por lo que es de menor cualificación que las dos anteriores que conllevan la parte del trabajo más delicada.

Después del producto esta completamente desarrollado, existen otras etapas como con puesta en marcha, implementación, entre otras que son determinantes para entregar un buen producto, y es recomendable que no sea realizado por la misma persona.

Mi opinión personal,

Pienso que la parte de análisis y diseño del sistema puede ser realizado por la(s) misma(s) persona(s) ya que ambas tareas van muy ligadas una a la otra, pero la programación debe ser una posición separada, el que hace el levantamiento no debe programar, ya que sería juez y parte y el producto nunca sería entregado de la forma más objetiva. Es preferible si se puede hacer el levantamiento dentro de la empresa y sub-contratar al(los) programador(es) y luego los que van a implementar el sistema.

sábado, 5 de septiembre de 2009

hosting ASP.Net en IIS 7.0

IIS 7.0 viene con la integración de ASP.Net por defecto en todas sus versiones, por lo que podemos configurar el Web Site para que ejecute nuestras páginas Web con cualquier tipo de framework utilizado para desarrollar nuestro site.



Para ejecutar estas aplicaciones, tienes que elegir un tipo de modo de ejecución, que es:

- Modo clásico.
- Modo integración.
La migración de migración a IIS7 puede mejorarse ejecutando la herramienta de comandos APPCMD.EXE:
%windir%\system32\inetsrv\APPCMD.EXE migrate config

Ese comando lo puedes ejecutar simplente escribiendo CMD en ejecutar(run) o navegando mediante Programs—>Accessories–>Command Prompt icon. Application Path es la ruta del directorio virtual de tu aplicación.

Cambiando la Apariencia de IIS 7

Lo primero es que debemos crear un application pool que es configurado para usar el modo deseado. Por defecto, todas las aplicaciones corren en modo integración. Para cambiarlo, debemos hacer lo siguiente:


luego que abrimos el Information Manager [IIS Manager] seleccionamos el modo en que deseamos que se ejecute nuestra aplicación como se presenta a continuación:

Luego puedes seleccionar la versión de framework que va a ejecutar la aplicación:
Ahí te aparecen todas laversiones existente desde la 1.1 hasta la 4.0 que es la más nueva.

miércoles, 2 de septiembre de 2009

Manual Minisap

Para todos aquellos que desean iniciar a programar en ABAP, les dejo un manual para instalar y configurar la cuenta de usuario para el Minisap R/3. Esta versión de SAP tiene todas las opciones de programación que necesita un desarrollador. No obstante, no incluye ninguno de los módulos importantes de SAP.

Para conseguir el Minisap lo puede hacer de la siguiente manera:

- Viene gratis con los libros
"ABAP Objects: Introduction to Programming SAP Applications"
"ABAP Objects: The Official Reference"
"Web Programming with the SAP Web Application Server"

También puede descargarlo de forma gratuita en http://www.sap.com/solutions/netweaver/linux/eval/was/ o comprandolo en el SAP Knowledge Shop para Windows 2000 y Xp. El único inconveniente es que la versión es un trial de 3 meses, por lo que si no está dispuesto a fajarse a aprender en poco tiempo no es bueno invertir ese tiempo en la instalación. Yo me voy a apuntar a aprender algo de SAP sobre Linux porque no lo conozco.

PD: Voy a pedirle a la Millie que me de una mano con eso.

Ebay vende acciones Skype

Ebay acaba de anunciar que ha vendido el 65% de las acciones de skype, el fabuloso servicio telefónico por Internet por unos 1,900 millones de dólares. Ebay se va a quedar con 35% de la empresa valorada en 2,750 millones de dólares. El trato estará aprovado para finales del último trimestre del año en curso.

Con esto Ebay recupera algo de la transacción tan criticada realizada en el 2005 cuando adquirió la empresa por unos 2,600 millones y que había intentado vender a Google hace unos años en una operación fallida.

martes, 1 de septiembre de 2009

Normalización de Base de Datos

Cuántas veces no vemos como algunos analista de base de datos comienzan a culpar al motor de base de datos porque las consultas son muy lentas o porque las transacciones se quedan muchas veces bloqueadas, entre muchas situaciones que hacen que las tareas del día a día sean cada día más tediosa.
  1. Pero, no se han preguntado ustedes, si puede ser un problema de diseño de la base de datos que viene arrastrándose hasta la aplicación que hace que nuestro sistema no funcione de forma correcta?
  2. No será que tenemos muchos registros redundante en nuestra base de datos, haciendo que esta ocupe más espacio del permitido?
Para responder algunas de esas preguntas, les voy a tratar el tema de normalización de base de datos, y como podemos corregir muchos errores en nuestros sistemas tomando las medidas de lugar al momento de diseñar un base de datos. Ahora que es la normalización, es un proceso que consiste en aplicar una grupo de reglas a las relaciones resultantes de la aplicación del modelo entidad-relación. Que nos facilita la normalización:
  • Evitar incongruencia de datos, tipos de datos y nombres.
  • Evitar datos redundantes.
  • Obtener una mayor integridad de nuestros datos.
  • Evitar inconvenientes con mantenimiento de datos.
Paso 1: 1ra. Forma Normal (1FN)
  • Todas la tablas deben contener una llave primaria.
  • Los campos en la tabla deben ser invisibles o mínimo (mejor conocido como atómicos).
  • La tabla no debe contener atributos nulos (uno de los errores más cometidos, especialmente en actualizaciones de tablas)
De esta forma se deben eliminar los datos repetidos, y disminuir los fallos de errores por la inexistencia de un determinado dato.

Paso 2: 2da. Forma Normal (2FN)

En este paso se deben verificar las dependencias de las distintas tablas, donde no existan dependencias parciales, es decir cada datos (Contraint) debe tener una dependencia completa a una tabla definida en nuestra base de datos.

Paso 3: 3ra. Forma Normal (3FN)

Cada atributo que no se encuentre relacionado a otra tabla mediante dependencia, depende directamente de la llave primaria. En otras palabras, cualquier dato que no sea clave debe ser eliminado o movido a otra tabla separada.

Existen otros dos pasos de normalización 4FN y 5FN, pero no son muy usados por los analistas de datos, que buscan mejorar aún más la estructuración de una base de datos.

Notas: para mejorar el uso de las base de datos es recomendable crear base de datos cerradas, es decir, que no le permitan muchas libertades al desarrollador de obviar registros que pueden ser importantes o que permitan errores en la extracción o consulta de alguna información que no fue insertada.

Para más información sobre el tema, ver:
Análisis y Diseño de Sistemas
Kendall y Kendall
Capítulo 17, Normalización de Base de Datos
Pág. 607

Un libro viejo, pero muy bueno, a veces no es el gran conocimiento que tengas sobre un determinado motor de base de datos o que tan eficiente sea éste, sino, que tan bien puedes aplicar las reglas de análisis al momento de diseñar tu base de datos.