martes, abril 25, 2006

Primer acercamiento a AJAX

Desde que escuché acerca de AJAX, me interesé en el tema y decidí investigar para aprender, utilizar, y poder implementar la tecnología en alguno de los proyectos en los que trabajo, lo cual intenté hacer hace un par de meses, pero la sección en que iba a implementarlo exigía más investigación para realizar las modificaciones pertinentes, lo cual no pude llevar a cabo por cuestiones de tiempo (clásica). No es hasta ahora que he podido implementar AJAX en uno de los proyectos en los que hemos estado trabajando en la oficina desde hace un buen rato, dicha implementación en realidad no fue nada complicada una vez encontré el tutorial adecuado, y en realidad todo está quedando de perlas gracias a la dedicación y paciencia del equipo de trabajo; es por esto que me ha parecido productivo documentar el logro, y compartir conceptualmente lo que he aprendido para que así puedan ponerlo en práctica.
AJAX es un acrónimo en inglés que para algunos quiere decir JavaScript y XML Asíncronos (Asynchronous JavaScript And XML) mientras que para otros es JavaScript y XML Avanzado (Advanced Javascripting And XML)... no obstante, es una técnica de desarrollo web utilizada para crear aplicaciones interactivas...
En esta técnica de desarrollo se ven involucradas ciertas tecnologías que podríamos agrupar en tres capas:

  • Capa de Presentación: utlizando HTML y CSS

  • Capa de Interacción dinámica con los datos: utlizando Javascript y el Modelo de Objeto de Documento (DOM, de sus siglas en inglés), y la

  • Capa de Manipulación de datos: utlizando XML y XSLT, para intercambiar y manipular datos de manera desincronizada con un servidor web (aunque las aplicaciones AJAX pueden usar otro tipo de tecnologías, incluyendo texto plano, para realizar esta labor). El objeto XMLHttpRequest es aquél que interactúa entre el navegador y el servidor web, generalmente con el envío de datos en formato XML (aunque se pueden aplicar otros formatos)
A manera de cultura general, hay que mencionar que Jesse James Garrett es considerado como el individuo que acuñó el concepto, lo cual se puede ver en este artículo.

A grandes rasgos AJAX, al igual que DHTML o LAMP (por ejemplo), no constituye una tecnología en sí, sino varias de éstas trabajando en conjunto.

Cómo funciona?
En las aplicaciones web tradicionales los usuarios interactúan mediante formularios, que al enviarse, realizan una petición al servidor web. El servidor se comporta según lo enviado en el formulario y contesta enviando una nueva página web. Se desperdicia mucho ancho de banda, ya que gran parte del HTML enviado en la segunda página web, ya estaba presente en la primera. Además, de esta manera no es posible crear aplicaciones con un grado de interacción similar al de las aplicaciones habituales.

En aplicaciones AJAX se pueden enviar peticiones al servidor web para obtener únicamente la información necesaria, empleando SOAP o algún otro lenguaje para servicios web basado en XML, y usando JavaScript en el cliente para procesar la respuesta del servidor web. Esto redunda en una mayor interacción gracias a la reducción de información intercambiada entre servidor y clientes ya que parte del proceso de la información lo hace el propio cliente, liberando al servidor de ese trabajo. La contrapartida es que la descarga inicial de la página es más lenta al tenerse que bajar todo el código JavaScript.

En dónde se recomienda usar AJAX?
La lista algunos la resumen a los siguientes elementos, aún así, recordemos que la creatividad es una de las herramientas a las que nos debemos aferrar al momento de trabajar...

  • Formularios: para lo que es interacción en el manejo de éste, mostrar información al seleccionar un elemento de un menú, autoguardado ...

  • Rápida comunicación entre usuarios

  • Envío de votaciones, cajas Si/No, calificaciones ...

  • Auto-relleno de texto comúnmente introducido

  • Errores interactivos

  • Largas consultas y llamadas remotas en ejecución

  • Almacenado en servidor

  • … y más …

Como pueden observar, AJAX, bien utilizada, es una técnica de desarrollo web que ofrece numerosas ventajas al navegante o usuario desde el punto de vista de interacción y usabilidad, no obstante, sin abuso se aprovecha mejor, hagan su investigación, el ser autodidacta es una buena práctica que trae buenos resultados. Actualmente estamos por desarrollar un pequeño módulo multimedia para un cliente, y estamos pensando utilizar Flash+AJAX, vamos a ver qué tal nos va, de concretizar la idea, ya se enterarán...


Fuentes consultadas:

+ http://es.wikipedia.org/wiki/AJAX
+ http://ajaxblog.com/
+ http://www.fiftyfoureleven.com/...
+ http://swik.net/Ajax/Places+To+Use+Ajax

miércoles, abril 19, 2006

Un Diagrama BD de Clases personalizado

Dentro de todo el análisis y diseño de base de datos que uno puede llegar a realizar en un momento dado para un sistema, uno de los principales documentos a elaborar es el "Diagrama de Base de Datos". Hace unos días discutía con un compañero casualmente por esto, porque según él estos documentos nada más se utilizan para ser presentados en la u como parte de un proyecto o asignación, al inicio yo también pensaba eso, sin embargo me he dado cuenta que este tipo de diagramas son de gran ayuda al momento de desarrollar un sistema, y más si éste está bien elaborado.

Inicialmente yo llamaba a este diagrama como "Entidad Relación", sin embargo mi compañero me refutaba que éste no era eso, no obstante, tampoco me decía qué diagrama era. En este artículo pienso aclarar dicha duda, y definir de una vez por todas qué es qué.

Dentro de la información que he recopilado hasta el momento, y comparando ésta con los diagramas que he estado elaborando, y que me han resultado de mucha utilidad, he encontrado que lo que estaba utilizando era una combinación de diagramas y metodologías de diversos autores, y en la búsqueda de llamar a estos diagramas de alguna forma, he llegado a la conclusión de que el nombre es lo que menos importa.

Dentro de la gama de diagramas UML hay uno en particular que he encontrado que se asemeja mucho a lo que he estado haciendo, llamado "Diagrama de Clases", aún así la teoría explica que el "Diagrama de Entidad Relación (E-R)" puede ser utilizado como extensión del primero para realizar un buen modelado de datos. ¿Por qué la combinación de éstos y no simplemente utilizar el primero?; respuesta: la semántica. Hay detalles de semántica de la bd que se quedan cortos con UML. De ser así, ¿por qué entonces no utilizar simplemente el "Diagrama de E-R"?, respuesta: porque éste es más conceptual que práctico.

Al momento de estar desarrollando una aplicación, de la mano con un diagrama de base de datos, quizás uno lo que quiera ver en éste es una buena representación de la base de datos tal y como está implementada con sus entidades y relaciones, de manera simplificada. Desde mi punto de vista un Diagrama E-R no es precisamente un diagrama simplificado que muestre esto, puesto que muestra más que las relaciones que existen entre las entidades, y dependiendo de cómo éstas sean, éste no será una representación gráfica práctica de la bd implementada. Más que todo, yo utilizaría este diagrama a nivel conceptual, y el de Clases, a nivel práctico.

lunes, abril 10, 2006

Problemas tipo MIME con IE

Hace unos días me encontraba trabajando en la depuración de uno de los sistemas que he trabajado, de hecho, en el primer sistema que desarrollé para web bajo la infraestructura PHP y MySQL, y tratando de solucionar un problema que tenía al momento de identificar el tipo de archivo que se cargada desde la aplicación, y de una pequeña investigación que hice para solucionar el problema, me encontré con cierta información, de la cual muchos estamos concientes... IE, al igual que muchos de los productos MS, tiene aún baches por resolver, razón por la cual muchos estamos optando por trabajar con herramientas opensourse, desde el punto de vista de navegadores (en lo personal trabajo con Firefox y Opera, siendo el primero de mayor preferencia).

Trabajando con PHP, en cuanto al manejo de carga de archivos se refiere mediante el método POST, utilizando el arreglo $_FILES[nombre_campo][type] estaba teniendo dificultades para identificar los archivos .doc correctamente, obteniendo como resultado un tipo MIME que no era el esperado. Después de una larga investigación, opté por no utilizar este método y trabajar directamente con la extensión de los archivos que estaba tratando de cargar.

Acerca del tema, en Wikipedia encontré este enlace (en inglés) en donde hay mayor información detallada...

lunes, abril 03, 2006

Tecnología Centrino... un vistazo conceptual

Artículo extraído de GestinoPolis.com

Centrino es un paquete tecnológico de Intel que provee soporte inalámbrico integrado para computadores portátiles, y que permite operar un portátil todo el día (hasta siete horas) sin recargar la batería. Con Centrino, Intel espera incentivar a las empresas y a las personas para que reemplazan sus equipos actuales con una nueva, más "móvil" versión. Algunos analistas estiman que un portátil más "movible" podría reemplazar los computadores de escritorio también.

El paquete Centrino incluye:

  • Procesador Pentium M
  • Familia de Chips 855
  • Conexión Inalámbrica PRO/Wireless

Macromedia crece de la mano de otras grandes compañías...

Revisando mi correo me he enterado de un avance más en lo que es la vida de la compañía Macromedia, y me he enterado que ahora está trabajando de la mano con HP. A raíz de esto, he decidido hacer una recopilación de las noticias de las cuales me he enterado, a partir de las cuales parece ser que Macromedia ha decidido trabajar de la mano con compañías de renombre para crecer.

Abril 2005 [ Adobe compra Macromedia ]

Por un valor de US$ 3,400 millones, dos grandes empresas dedicadas al desarrollo de softwares para diseñadores y desarrolladores se unieron creando una gran compañía a raíz de la adquisición de Macromedia por parte de Adobe.

Ambas empresas son propietarias de dos de los formatos de distribución de contenidos más extendidos en la Red, PDF y Flash, de Adobe y Macromedia, respectivamente.

Más información...

Agosto 2005 [ Macromedia anuncia Studio 8 ]

Studio 8 además incluye nuevas y revolucionarias herramientas de codificación de video, las cuales otorgan al cliente un método sencillo para la creación y publicación de video interactivo de alta calidad logrando experiencias en-línea verdaderamente memorables. Por su parte, mejoras en CSS y en las herra mientas de autoría visual para XML, agregan sofisticación a los sitios web y aplicaciones. Las nuevas herramientas para la autoría y prueba de contenido móvil, le otorgan a Studio 8 el liderazgo en ayudar a los negocios, a alcanzar las mayores audiencias posibles a través de múltiples plataformas.

Studio 8 in cluye Contribute 3 y FlashPaper 2, lo que permite suplir mejor las necesidades de flujo de trabajo de los usuarios. Contribute 3 permite a los profesionales web modificar o actualizar contenido en un flujo de trabajo controlado y basado en ejemplos, que mejora la eficiencia mientras preserva la integridad del sitio web. FlashPaper 2 extiende el proceso de creación de contenido al convertir cualquier tipo de archivo en un PDF ó SWF, listo para el web.

Más información...

Septiembre 2005 [ Macromedia y HP trabajarán conjuntamente ]

Macromedia ha anunciado un acuerdo con HP que tendrá como objetivo ayudar a que los usuarios puedan gozar de servicios de telecomunicaciones y aplicaciones dinámicas de Internet (RIA - Rich Internet Applications) en ordenadores personales inalámbricos, PDAs, dispositivos móviles y otros dispositivos electrónicos de consumo. Macromedia y HP integrarán y venderán conjuntamente soluciones que unirán la Plataforma Flash® de Macromedia y la Plataforma de Entrega de Servicios de HP (SDP).

Juntos, Macromedia y HP permitirán a las empresas operadoras, proveedores de equipos de redes y ISVs de telecomunicaciones lograr que la creación de nuevas soluciones de comunicaciones, mensajería y colaboración sea más eficiente; desplegar servicios ricos en multimedia de manera más segura; y beneficiarse de la ubicuidad de Macromedia Flash Player y de la solidez de HP SDP a través de redes móviles, fijas y de banda ancha.

La ubicuidad de Macromedia Flash Player - la columna vertebral de la Plataforma Flash - hace posible que cualquier persona pueda acceder a experiencias de comunicaciones ricas, dinámicas e integradas sin tener que instalar y configurar software específico.

Más información...

En el siguiente enlace podrán encontrar un video informativo que muestra cómo la integración de estas dos compañías crean un ambiente de trabajo virtual dando soluciones al cliente en un tiempo mínimo, en realidad es muy interesante lo que hoy en día se puede conseguir con tanta tecnología a la mano.
Ver video de demostración ...

Finalidades del Software Malicioso

Artículo extraído desde nuestros amigos de desarrolloweb.com.

Navegando por la web, me he encontrado con este artículo que me ha parecido muy interesante, más para aquellos que por consecuencias de la vida hemos tenido problemas con nuestras computadoras a raíz de estos "preciados" malwares. De aquí mi interés por compartir esta información con ustedes, a manera de extracción, no vaya a ser que me demanden por plagiar información de otros sitios, de todas formas, el artículo completo lo podrán encontrar haciendo clic aquí.

Dentro de los principales malwares y sus motivos, encontramos los siguientes:

Gusanos

Definición:

  • Malware capaz de reproducirse a través de algún medio de comunicación (por ejemplo, el correo electrónico) para intentar llegar a la mayor cantidad de equipos, infectarlos y seguir su reproducción hacia otros equipos.

Objetivo:

  • proliferar otros tipos de códigos maliciosos, como troyanos, bots y keyloggers (*). Aprovechando la velocidad de propagación del correo electrónico (uno de los métodos más utilizados por los gusanos) sus autores pueden proliferar otros códigos maliciosos rápidamente.
  • hacer daño, para atacar a la competencia o como en el caso del Netsky para intentar eliminar otros gusanos o virus de los PCs infectados.
Bot

Definición:

  • troyano que cumple una función específica y puede llegar a recibir órdenes de alguna manera, por lo que está relacionado con los troyanos conocidos como Backdoors.

Objetivo:

  • formar redes de PCs zombies, y que pueden ser utilizados por sus autores para lanzar ataques de denegación de servicios en forma distribuida, enviar correo electrónico no solicitado, etc.

Spyware

Definición:

  • todo tipo de software que se instala en forma no deseada, y cuyo fin es modificar los hábitos de uso de la computadora para, por ejemplo, obligar al usuario a tener siempre la página de inicio de una empresa en particular.

Objetivo:

  • recolectar información del equipo donde se encuentra instalado, la cual es enviada a algún servidor central; con esa información, las compañías pueden saber cualquier cosa que se realice en nuestra computadora e incluso luego enviarnos información comercial según nuestros hábitos.

En el desarrollo del malware, en general, existen las siguientes finalidades:

  • Demostrar que es posible explotar una vulnerabilidad o aprovechar cierta plataforma, lo que se conoce como el desarrollo de una prueba de concepto.
  • Producir daño en los equipos donde se instala el malware.
  • Obtener información del equipo infectado para lograr un rédito comercial (ya sea directamente o indirectamente).
  • Venganza.
  • Notoriedad.
  • Estafas.
  • Sabotaje.

Buteando desde Modo a Prueba de Fallos

Artículo extraído desde nuestros amigos de PCStats.

El Modo a Prueba de Fallos ha sido un componente de Windows desde la versión 95, al cual se puede tener acceso presionando la tecla F8 desde que aparece la primera pantalla del sistema cuando éste está arrancando.

La razón por la cual podamos estar interesados en arrancar nuestro sistema en Modo a Prueba de Fallos, es quizás porque estamos confrontando problemas con nuestro sistema, y mediante este procedimiento podremos determinar si esto se debe a un malfuncionamiento del hardware, o es debido a algún software, quizás malicioso.

A continuación se listan algunas de las razones por las cuales sería productivo arrancar nuestro sistema en Modo a Prueba de Fallos:

Remover virus / spyware: en muchas ocasiones los programas maliciosos suelen instalarse en ciertos sectores desde donde se pueden ejecutar automáticamente, tales como el registro de Windows y la estructura de los archivos. Arrancando desde el Modo a Prueba de Fallos, los antivirus y programas anti-spyware suelen tener mayor efecto al no ser utilizados estos sectores en este modo

Resolver problemas de software: constantes caídas del sistema o inclusive problemas para arrancar son síntomas ocasionados por problemas con ciertos softwares. Veamos cómo podemos identificar estos problemas. De poder arrancar en Modo a Prueba de Fallos y no normalmente, entonces tenemos un problema de sotware.
  • Si rompe durante el proceso de carga, antes que aparezca la interfase de Windows, o bien aparece un BSOD (pantalla azul de la muerte - de sus siglas en inglés), confrontamos un problema de controladores. Para ello, podemos utilizar la herramienta SIGVERIF, en Modo a Prueba de Fallos; esta herramienta creará un listado de los controladores no firmados por Windows, y que pueden ser la causa de fallo, lo que sigue a continuación es encontrar aquellos que pensemos sean los defectuosos en c:\windows\system32\drivers, cortarlos, copiarlos en otro lado, e intentar, hasta dar con el controlador problemático.
  • Sin embargo, si el problema ocurre luego de que aparece la interfase de Windows, se debe a algún programa que está intentando cargar y está dando problemas; para lo cual nos sería útil alguna herramienta como la ofrecida, o bien la herramienta MSCONFIG (de Windows), mediante la cual podremos deshabilitar aquel programa que se está cargando y que creamos que está ocasionando el mal funcionamiento

Una vez más, el presente artículo está orientado a personas del ámbito de la informática, su versión original se puede accesar desde este enlace, y obtener toda la ayuda pertinente.