martes, 31 de mayo de 2011

HISTORIA DE MICROSOFT SQL SERVER – BASE DE DATOS RELACIONAL - RDBMS

Hoy voy a compartir con ustedes mis vivencias con el motor de base de datos Microsoft SQL Server y conocer las diferentes versiones que han salido al mercado, no está de más hacer notar que este motor está basado en el modelo relacional, quiere decir que su objeto mas importante son las tablas las mismas que usan claves foráneas para establecer relaciones o lo que denominamos integridad referencial, además estas deben tener integridad de la entidad que establece definir una clave primaria en cada tabla como identificador único de registro.

Es importante recalcar que el Modelo Entidad Relación es un punto importante en el “modelamiento de datos” o también denominado “MER”, cuestiones como la normalización son puntos clave para un Administrador de datos con este motor e incluso para el desarrollo de sistemas.

Todo empieza en el año de 1989 con SQL Server 1.0 que salió para el viejo sistemas operativo OS/2 de IBM que vio la luz en 1987, posteriormente en el año 1993 aparece SQL Server 4.21 para Windows NT, lo raro fue su número de versión, luego en el año de 1995 sale la versión de SQL Server 6.0 en todo el apogeo del sistema operativo Windows 95, debo mencionar que para estos momentos SQL server no era tan conocida ni popular, recién tomaba auge Windows NT en el mundo de los servidor, al siguiente año 1996 se lanza SQL Server 6.5, es este momento que personalmente comienzo a ojear la documentación del motor, pero no a implementarlo.

En 1998 Microsoft lanza SQL Server 7.0 que se convierte en la versión más popular, en el siguiente año 1999 Microsoft  lanzo otra versión 7.0 con las herramientas OLAP (On-Line Analytical Processing) que es una solución utilizada en la llamada Inteligencia empresarial o Business Intelligence, donde el objetivo es agilizar la consulta de grandes cantidades de datos.

Esta versión de Microsoft SQL Server 7.0 es la que use para mi tesis cuando me gradué de Analista (año 2000) junto a dos compañeros el Lcdo. Gabriel Buendía y el Analista Juan Brito, la usamos para la 2da versión de la página del antiguo PROTCOM (Programa de Tecnología en Computación) ahora llamada EDCOM, usamos Macromedia Flash y Dreamwaver, lo interesante y novedoso para  aquella época era que este sitio se lo administraba con un sistema  hecho en Microsoft Visual Basic 6.0; todo se podía modificar en cuanto a sus datos, y es aquí que decidimos usar a SQL server, para la pagina usamos ASP 3.0, debo decirlo, todo era tecnología Microsoft, desde el S.O. del servidor, tecnología de acceso a datos y el motor,  al finalizar la tesis en el año 2000, migramos la base al reciente SQL Server 2000 o versión 8.0; desde aquí este motor marco un interés en mi en aprender sobre su forma de administrar los datos y su lenguaje T-SQL, aunque también soporta ANSI-SQL.

Escuche por unos amigos en el año 2003 que Microsoft saco la versión SQL Server 2000
64-bit Edition
, que se podía instalar en Windows XP 64Bit y Windows Server, pero no la use, yo seguía aprendiendo más de la versión 2000, para este año 2003 me certifique en SQL Server 2000 como MCP, además del conocido Microsoft Visual Studio 2002 y ASP.NET.

Esta versión 2000 duró por mucho tiempo 5 años después en el 2005 es lanzada la versión SQL Server 2005 o versión 9.0 que se me hizo fácil migrarme a ella; la utilice en mi tesis de Licenciado con un sistema de control de dictado de materias para docentes llamado “COASIS”; además como Administrador de datos en la APESPOL (Asociación de Profesores de la ESPOL) y en algunos proyectos del EDCOM: pude probar sus nuevas características, y finalmente en el año 2008 es lanzada SQL Server 2008 o versión 10.0, que para el 2010 ya sabía trabajar con ella y la propusimos en el dictado de una materia de la carrera de Sistemas con la que estamos ahora.

La última versión de este motor es lanzada en el año 2010 como SQL Server 2008 R2, algunos la llaman SQL Server 2010, cosas raras de algunos administradores, pero en fin es solo una versión mejorada de la 2008 que aun estoy aprendiendo en cuanto a sus nuevas características.

Con este artículo espero dar un enfoque distinto a la historia del motor relacional Microsoft SQL Server, en otro artículo podemos profundizar en sus bondades y beneficios.

viernes, 27 de mayo de 2011

PAGAR CON EL MOVIL O TELEFONO CELULAR A LA VUELTA DE LA ESQUINA CON IPHONE Y ANDROID DE GOOGLE

Hoy comentaré sobre algo tan novedoso y que nos causará un nerviosismo intrigante, los primeros en pegar con esta idea y llevarla a cabo es Apple, planteando usar su teléfono el iPhone como tarjeta de crédito, todo se trata de un software que funciona directamente desde nuestro celular, creado por la empresa “Square”, así que ahora no tenemos que preocuparnos si salimos o no con la billetera, es mas no hace falta el abanico de tarjetas de créditos, porque siempre y cuando tengamos nuestro teléfono celular con nosotros podemos hacer el pago correspondiente.

Por ahora se trata de una versión beta, y requiere que tengamos un iPhone, el software de la empresa Square en el negocio o establecimiento y en el teléfono, además un lector de tarjetas conectado a la entrada de auriculares y  contar con nuestra tarjeta de crédito, una vez que se finaliza toda la transacción, recibiremos la confirmación de pago por un mensaje del tipo SMS o correo electrónico, simplificando todo el proceso.

A esta idea se suma el todopoderoso Google, más o menos con la misma filosofía de usar el móvil como tarjeta de crédito, rumor que se venía oyendo desde el año 2005, La diferencia con la iniciativa de Apple, es que la de Google pretende hacer del teléfono de cada comprador una tarjeta de crédito mientras que Apple y Square apuestan por convertir los móviles e incluso los “tablets” de los vendedores en terminales de pago con tarjeta.  Google aspira a que en su aplicación para pagar con teléfonos Android quepan todas las tarjetas de crédito del cliente.

La primera prueba de Google, mostró que el sistema admite un tipo de tarjeta de MasterCard, otra de prepago de la misma Google y varias de regalo de los comercios que se han suscrito. En cuanto a la seguridad el proyecto de Google llamado “Google Wallet” dice ser tan seguro como una tarjeta de crédito. Además de contar con un PIN que se requiere para cada pago, hay que sumar la pasarela de seguridad de cada compañía bancaria, que los datos van encriptados, que nunca se muestra completo el número de la tarjeta y la muy segura “tecnología NFC” para el envío de datos entre el teléfono y el terminal que sólo se pone en marcha una vez introducido el código de seguridad, pero el gigante ya se topo con una pelea legal con Paypal que plantea que Google ha copiado la idea de ellos, producto de 2 empleados que salieron de ella y que ya están trabajando para Google, ver el video para enterarse del asunto y una explicación de lo aqui expuesto.



Debo decir que lo que me asusta es el como? y cuando? llegará a Ecuador esta novedad, porque debemos admitir que el robo de celulares en nuestro país en pan de cada día, y a regañadientes aceptamos la perdida, pero al saber que perdemos un medio de compra, los ladrones nos harán feria nuestros ahorros, en todo caso se deberán aplicar mecanismo de identificación supongo, pero desde ya que nos deparará el futuro con respecto a este tema aquí en Ecuador.

Quisiera terminar este artículo con algo que llega a mi penosa mente con mucha tristeza, una clase de la materia de Emprendimiento cuando estudiaba mi licenciatura, y el profesor nos planteo allá por el 2005 que expusiéramos una idea de negocio, y un compañero expuso “el pago con el celular” WOW, de locos todos dijimos “Grandiosa idea”, será que le robaron la idea los de PayPal?, no lo creo por supuesto; pero es una pena que en nuestro país tengamos a politécnicos con grandiosas ideas y que no existan inversionistas de riesgos como los hay en la Bahía de San Francisco al sur de esta ciudad llamada “Silicon Valley” en EEUU, donde han nacido empresas de la talla de Apple, ORACLE, SUN, Facebook, Intel entre otras, gracias a la mentalidad de sus inversionistas de riesgo que en mi querido Ecuador NO EXISTEN, así que desde mi humilde opinión NO tenemos mucho futuro en esto del Emprendimiento tal como lo estamos planteando, para ello dedicaré un artículo en el futuro.

lunes, 23 de mayo de 2011

LOS PROGRAMAS QUE OFRECE MICROSOFT ENTRE CONOCIDOS Y DESCONOCIDOS, LISTA DE 50 SOFTWARE

Les voy a comentar sobre los diferentes productos que la empresa Microsoft ofrece, porque son muchos, muchos más CONOCIDOS que otros, pero esta empresa ha crecido, y ya no solo nos ofrece Windows y Office con todos sus “plus” como Word, Excel, PowerPoint entre otros; tratare de describir rápidamente en formato de lista para que sirve cada uno, empezando con los más conocidos hasta los menos escuchados.

Y la lista de las 50 aplicaciones empieza con las más conocidas, en negrita con los que me identifico:

1. Microsoft Windows 7, Vista, XP, 2000, Me, 98, 95 (sistema operativo de escritorio).

2. Microsoft Windows Server 2008 R2, 2008, 2003, 2000, NT (Sistema operativo para servidores)

3. Microsoft Office 2010, 2007, 2003, XP, 2000, 97, 95 (Suite Ofimática)

a. Word (Procesador de Texto)


b. Excel (Hoja de Cálculo)


c. PowerPoint (Presentador de Diapositivas)


d. Access (Base de datos)


e. Outlook (Correo electrónico)


f. Publisher (Diseñador de Publicaciones)


g.       Groove (Colaboración para trabajo en equipo)


h. Project (Manejo y control de proyectos)


i. Visio (Programa vectorial para realizar diagramas en general)


j.        InfoPath (crear formularios de entrada)


k.       OneNote


4.       Microsoft Office 365 (Office en la WEB)

5. Microsoft Mac Office 2011, 2008, 2004

6. Microsoft SQL Server 2008, 2005, 2000, 7.0 (RDBMS motor de base de datos relacional).

7. Microsoft Visual Studio.NET 2010, 2008, 2005, 2003, 2002, 6.0, 5.0

a. Visual Basic .Net (Lenguaje de Programación OO)


b.      C# (Lenguaje de Programación OO)


c.       C++ (Lenguaje de Programación OO)


d.      Visual J# (Lenguaje de Programación OO)


e. ASP.NET (Lenguaje de Programación OO para Servidor)


8. Microsoft Internet Explorer 9, 8, 7, 6 (Navegador de Internet)

9. Microsoft Windows Media Player 12, 11,10,9,8, 7 (Reproductor multimedia)

10.   Microsoft Dynamics (Solución CRM y ERP).

11.   Microsoft Expresión (Competencia a Adobe CS5)

a.       WEB (Creación de Sitios Web)


b.      Blend (Animaciones tipo Flash)


c.       Design (Diseño Profesional)


d.      Media (Multimedia tipo Director)


e.      Encoder (Codificación de archivos)


12. Microsoft Live Essential

a.       Windows Live Mail


b. Windows Live Messenger


c. Windows Live Movie Maker


d.      Galería fotográfica de Windows Live


e.      Windows Live Mesh (integrado con la barra de herramientas y la Galería de Fotos)


f.        Windows Live Toolbar


g.       Windows Live Writer


13.   Microsoft Windows Small Business Server 2011 (Sistema Operativo)

14.   Microsoft Windows Storage Server (Almacenamiento para S.O.)

15.   Microsoft System Center (Gestión TI)

16.   Microsoft System Center Configuration Manager (Gestión TI)

17.   Microsoft System Center Operations Manager (Gestión TI)

18.   Microsoft System Center Data Protection Manager (Gestión TI)

19.   Microsoft System Center Virtual Machine Manager (Gestión TI)

20.   Microsoft System Center Service Manager (Gestión TI)

21.   Microsoft System Center Essentials (Gestión TI)

22.   Microsoft Opalis (Gestión TI)

23.   Microsoft BizTalk Server (Plataforma de Aplicaciones)

24.   Microsoft Forefront (Seguridad)

25.   Microsoft Forefront Endpoint Protection (Seguridad)

26.   Microsoft Forefront Client Security (Seguridad)

27.   Microsoft Forefront Protection 2010 for Sharepoint (Seguridad)

28.   Microsoft Forefront Protection for Exchange (Seguridad)

29.   Microsoft Forefront Security for Office Communications Server (Seguridad)

30.   Microsoft Forefront Threat Management Gateway (Seguridad)

31.   Microsoft Forefront Identity Manager (Seguridad)

32.   Microsoft Commerce Server (Productividad Empresarial)

33.   Microsoft Exchange Server (Productividad Empresarial)

34.   Microsoft Exchange Server On Line(Productividad Empresarial)

35. Microsoft Share Point / Server

36.   Microsoft Share Point On Line

37.   Microsoft XNA (Desarrollo de Videojuegos)

38. Microsoft Security Essentials (Antivirus)

39.   Microsoft Lync (Comunicación para Office)

40. Microsoft DirectX (Librerías graficas, audio etc. Para videojuegos)

41.   Microsoft Money (Llevar la contabilidad)

42.   Microsoft Azure (Plataforma para la nube de Internet)

43.   Microsoft Windows Azure AppFabric

44.   Microsoft SQL Server Azure

45. Microsoft Live Meeting (Videoconferencia y Estudios a distancia)

46.   Microsoft Communications OnLine

47. Microsoft Virtual PC 2010, 2007 (Vitalización de Windows)

48.   Microsoft Amalga

49.   Microsoft Antigen 9.0

50.   Microsoft Windows Phone 7 y muchos más…

Y hasta aquí llegamos, quiero que el lector se dé una idea de que Microsoft siempre ha tenido muchos productos de software, no todos nos vienen a la mente, porque tal vez nos desenvolvemos en un área muy específica de la informática, pero esta empresa siempre se le ha reconocido por estar en todas partes, y eso que no he contado las líneas como por ejemplo Xbox 360 entre otras UPS!.

QUE DEBE SABER EL PROGRAMADOR DE APLICACIONES WEB VERSUS APLICACIONES DE ESCRITORIO

Les quiero comentar que hoy en día hablar de aplicaciones Web es muy común, incluso en las empresas, ya que estas están comenzando a plantear que sus sistemas internos que corren como aplicaciones de escritorio, instaladas en sus equipos locales con algún servidor en su intranet se migren al Internet, entonces la principal diferencia con una aplicación web es que los usuarios pueden utilizarla accediendo a un servidor web (Windows o linux) a través de Internet o de una intranet mediante un navegador que puede ser Internet Explorer, Mozilla FirexFox entre otros, por ejemplo Wikipedia, Gmail, Hotmail, Mercadolibre, Ebay, Amazon, Youtube, Sitios de compra entre otros; son ejemplos claros de estos sistemas web enriquecidos.

Las ventajas que presentan estas aplicaciones son diversas pero las más importantes son:

  • No requieren instalación en los equipos clientes, porque se usa el navegador con alguna dirección en especial, que pide usuario y clave; no existe un proceso “setup” o “instalar”.

  • Presentan una centralización ya que al estar instaladas en un único servidor, los cambios solo se hacen en el, así que son fáciles de actualizar y mantener.

  • La interfaz en muy común y práctica ya que siguen el patrón de diseño o concepto de navegación de otras páginas web que el usuario ya conoce.

  • Si el sistema está en una dirección publica del internet, se puede acceder a estas desde cualquier parte del mundo.

  • Son desarrolladas con nuevas formas de arquitectura como SOA (Arquitectura orientada a servicios) y nuevas tecnologías.


Pero me voy a centralizar desde el punto de vista de las herramientas, que es lo que debe saber el programador para crear este tipo de aplicaciones, primero que nada la base será el lenguaje HTML y Javascript; aquí podemos utilizar algún buen editor y diseñador de páginas las alternativas:

  • Adobe Dreamweaver (Recomendado)

  • Microsoft Expression Web Designer

  • Microsoft Visual Studio.NET


Luego este programador debe conocer por lo menos uno de los lenguajes de programación para el web, del lado del servidor, que le permita interactuar o conectarse con un motor de base de datos, las alternativas son:

  • PHP (PHP Hypertext Pre-processor o Personal Home Page Tools) (Recomendado)

  • JSP (JavaServer Page)

  • Microsoft ASP.NET (Active Server Page) se puede programar con VB.NET o C#

  • Java como Applets  porque es un componente de aplicación que se ejecuta en el contexto de un navegador web.

  • Adobe Coldfusion

  • CGI (Common Gateway Interface) actualmente se usa muy poco.


Para los datos y su portabilidad el ganador indiscutible es XML y XSD; el motor de la base (RDBMS) puede ser cualquiera, sea un MySql, Oracle, Microsoft SqlServer, DB2, Informix entre otros.

El servidor web en cuanto al Sistema Operativo puede ser un Linux que tenga instalado Apache que es el servicio que expone el servidor web de aplicaciones, y en Windows Server deberá estar el IIS (Internet Information Server) que hace lo mismo que Apache pero en Windows, otro servicio que se está usando bastante es JBoss con la misma finalidad.

Por último siempre estarán las tecnologías que complementan al desarrollador para mejorar aspectos más puntuales en estas aplicaciones y enriquecerlas tales como:

  • AJAX (Asynchronous JavaScript And XML (JavaScript asíncrono y XML)

  • CSS (Cascading Style Sheets).

  • Web Services.

  • LINQ (Language Integrated Query) de Microsoft

  • Reporting Services, Crystal Reports o alternatives Open Source.

  • Adobe Flash para las animaciones o mejorar el Fron-End más su lenguaje ActionScript

  • XUL (acrónimo de XML-based User-interface Language)

  • HTML versión 5 con todas las mejoras que trae.


Para concluir en todos estos lenguajes siempre estará presente el conocimiento de la Programación Orientada a Objeto, las mejores prácticas de desarrollo, el uso de librerías para reutilización de código, el uso de protocoles de comunicación seguros como HTTPS, Firmas Digitales, Canales Seguros; ya que si la aplicación esta en el internet se expone a lo que yo llamo “El salvaje Oeste”, lleno de Hackers.

Quisiera terminar este artículo diciendo, que si se me escapó algún lenguaje o tecnología pido las disculpas del caso, ya que lo he escrito desde mi humilde experiencia, espero haber aclarado esto del desarrollo de aplicaciones web, tanto para mis estudiantes como amigos en general.

miércoles, 18 de mayo de 2011

CURSO DE UNITY 3D EN LA ESPOL - DESARROLLO DE VIDEOJUEGOS CON ENGINES 3D - EDCOM

Les voy a comentar que estuve asistiendo a un curso de la ESPOL que fué dictado en la EDCOM (Escuela de Diseño y Comunicación Visual), en el campus peñas del 10 al 16 de mayo de la herramienta Unity 3D, que esta pensada para hacer videojuegos, realmente Unity es un software para modelar los objetos, crear terrenos, la física, sonido, de una manera sencilla, además de la lógica del juego;  aclarando que “sencillano quiere decir fácil, porque se debe tener un previo conocimiento en modelado (recordar que soy un programador no diseñador grafico);  me interesa bastante la programación dentro de la herramienta, que utiliza una versión de JavaScript, aunque se puede usar también C#.

Lo interesante es que permite publicar el juego (Compilarlo y construir el ejecutable) en las plataformas de iOS es decir para iPhone, Windows, Mac, Android de Google y Wii; que era lo que sabía antes de entrar al curso, pero cuando me puse a investigar dentro del mismo encontré que también están incluidas las plataformas Xbox 360 y PS3.

El software no es gratis, hay que pagar la licencia si uno se va a dedicar a desarrollar de manera comercial, pero si les interesa desde la pagina de Unity 3D http://unity3d.com/unity/ se pueden descargar una versión de prueba muy funcional que les permite publicar el juego, pero dura unos días, suficiente para darse una idea del entorno y las facilidades que esta presta, lamentablemente la documentación para los autodidactas como yo esta en puro ingles, pero con el ingles técnico que sabemos es más que suficiente.

En la misma página http://unity3d.com/unity/ se pueden bajar unas demos con los fuentes de juegos increíbles para que vean el poder de este motor 3D, que no está nada mal comparado con el que usan las desarrolladoras fuertes en esta industria como es el UDK de Epic (Unreal Engine) que sirve para lo mismo y en muchos aspectos lo supera; pero sus costos de licenciamiento son altos asi que pensar en unity 3D no es descabellado.

El docente que impartió el curso se llama Alejandro Bermann, argentino con experiencia en la herramienta, traído exclusivamente por la EDCOM para el público que desea aprender y sumergirse en esto de los videojuegos, el curso cubrió las expectativas de las personas que manejan modelamiento y texturizado 3D, un poco de programación, pero me dejo lo necesario y las pautas para continuar, y por supuesto el potencial que les da la herramienta a los profesionales de Diseño y no comer cuento chino.

Les pongo una imagen del juego que se realizó en clase de un FPS (First-person shooter) de 3 niveles, al final hay que matar un dragon, con sonido, efectos y en 3D.

jueves, 12 de mayo de 2011

SEGURIDAD EN NUESTROS EQUIPOS PORTATILES - CABLE DE SEGURIDAD KENSINGTON

Después de unas vacaciones y un arduo trabajo en mi tesis, continuamos con la publicación de artículos, hoy quiero empezar con un área muy importante como es la seguridad de nuestros equipos informáticos, sean estos netbook, notebook, laptos y PC de escritorio, pero sobre todo aquellos portátiles que llevamos de un lado a otro por ejemplo al trabajo, a la universidad , centro comercial o cualquier sitio donde los “amigos de lo ajeno” (los ladrones) se hacen presente, por supuesto no existe la seguridad completa pero debemos siempre hacer que a ellos les tome tiempo y esfuerzo para que desista o cacharlo infraganti, bueno les voy a recomendar algo que es tan antiguo pero que a veces no le damos la prioridad e importancia de adquirirlo y es un cable de acero que puede estar recubierto con un plástico por estética, y que se engancha al portátil y a un lugar fijo cercano, como la pata de una mesa, pero recordar que hay mesas fáciles de levantar.

Para usarlos, casi todas las portátiles actuales tienen un agujero que viene en uno de sus costados, creo algunos se han de haber preguntado  para qué sirve?, pues el cable de acero que adquirimos se conecta y se asegura en él; hablo del “conector de seguridad Kensington”. Se trata de un agujero pequeño en el que encaja una cerradura de tipo Kensington, esto es una forma de tener una seguridad física de nuestros equipos, algunos son de códigos con unas pequeñas ruedas de números parecidas a los que traen los maletines, y el cable de marca Kensington son con llaves; por supuesto todo eso incide en el costo del mismo que oscila entre $10 y $25 aquí en Ecuador, solo  me queda agregar que este cable también sirve para monitores, TV de plasma, LCD o LED, impresoras o todo equipo que tenga el agujero de seguridad Kensington, y que invertir unos $20 no es nada comparado a que nos roben nuestros equipos de $500 o más.