martes, 27 de octubre de 2015

BitNami: instalador de aplicaciones web

Introducción

A menudo oímos hablar de nuevas aplicaciones web Open Source que prometen ser muy interesantes y querríamos experimentar con ellas para comprobar la funcionalidad que ofrecen, comparar con otras equivalentes, etcétera. Pero la instalación de algunas aplicaciones de software libre no siempre es sencilla. Generalmente requieren tener alguna experiencia, ya que la mayoría necesitan un servidor web Apache y una base de datos MySQL. La instalación de estos elementos no es trivial y por lo tanto no siempre está al alcance de cualquier usuario. Pueden surgir problemas que un usuario en condiciones normales no será capaz de resolver.

El proyecto BitNami acude a nuestra ayuda facilitándonos todas estas tareas y haciendo que instalar y establecer una configuración básica de la aplicación web seleccionada sea prácticamente tan sencillo como una secuencia de clics.
En el artículo vamos a describir brevemente el instalador BitNami y pasaremos a ver un ejemplo de utilización realizando la instalación del Gestor de contenidos Joomla! utilizando como base la distribución GNU/Linux Ubuntu 9.04 (Jaunty).

¿Qué es BitNami?

BitNami (http://bitnami.org/) es un instalador multiplataforma, y con licencia GPL, de aplicaciones web de software libre. Es decir, proporciona instaladores para Linux, Windows y Mac OS y para este último, incluso proporciona en algunos casos versiones para PowerPC y para Intel.
Su objetivo es facilitar la instalación y configuración de gran cantidad de aplicaciones web como por ejemplo: WordPress, Joomla!, Drupal, phpBB, MediaWiki, Alfresco, etcétera. Además instala todos los elementos que requiere el funcionamiento de la aplicación, como puede ser un servidor HTTP Apache, o una base de datos como MySQL.
BitNami crea paquetes, que llama stacks o pilas, que contienen todo lo necesario (programas, scripts, bases de datos, dependencias de librerías resueltas,...) para la instalación de la aplicación, con total independencia del software que tengamos instalado y sin interferir en él.
En nuestro caso, que vamos a instalar Joomla!, no necesitaremos saber cómo se instala Apache o MySQL, ya que el instalador correspondiente de BitNami lo hará por nosotros.
De cada aplicación web hay un stack que hay que descargar (http://bitnami.org/stacks) y a continuación instalar siguiendo los pasos indicados.
Si llegado el momento queremos desinstalar la aplicación, con BitNami podemos hacerlo de la misma forma, sencilla y dejando nuestro sistema igual que estaba antes de la instalación.

Como resumen podemos decir que BitNami es

  • Fácil de utilizar 
  • Con sólo unos clics de ratón, podemos tener una aplicación de software libre funcionando.
  • Multipatforma
  • Existen BitNami Stacks disponibles para Linux, Windows y Mac OS X.
  • Independiente 
  • Los Stacks BitNami no va a interferir con el software ya instalado en el sistema.
  • Funcionan de forma nativa o en virtual.
  • Permite la instalación de la pila directamente en el sistema, o se puede ejecutar como una máquina virtual.
  • Open Source 
  • Todas las pilas BitNami se pueden descargar libremente y utilizar en los términos de la Licencia Apache 2.0.
  •  

¿Qué es EyeOS y sus características?

EyeOS es una plataforma de nube privada con una interfaz de escritorio basada en la web. Comúnmente llamado escritorio en la nube por su interfaz única, eyeOS proporciona un escritorio completo desde la nube con gestión de archivos, herramientas de gestión de la información personal, herramientas colaborativas y aplicaciones de la compañía.
Se trata de un nuevo concepto en almacenaje virtual, el cual se considera como revolucionario al ser un servicio clave para el Web 2.0 ya que dentro de una web que combina el poder del actual HTML, PHP, AJAX y JavaScript para crear un entorno gráfico de tipo escritorio.
La diferencia entre otros entornos escritorio al hacer posible iniciar el escritorio eyeOS y todas sus aplicaciones desde un navegador web. No se requiere instalar ningún software adicional, ya que solo se necesita un navegador que soporte AJAX, Java y Adobe Flash (dependiendo de las aplicaciones que se deseen ejecutar).
Este servicio se destaca principalmente por sus fuertes medidas de seguridad, lo que le ha valido un crecimiento medio de 400 usuarios al día[cita requerida]. Algunas de sus medidas de seguridad involucran el uso de cortafuegos, respaldos totales cada 24 horas, y formateos mensuales como medida preventiva en caso de que algún código malicioso se lograra infiltrar.

CARACTERISTICAS

El escritorio

eyeOS ha replanteado el concepto de escritorio web. En lugar de mostrar una gran cantidad de iconos en un fondo de pantalla, hemos decidido utilizar el escritorio para mostrar la información más útil para el usuario. La pantalla es ahora una serie de widgets con la información más importante sobre tu sesión y tu información personal, para ayudar así a aumentar tu productividad.

Las aplicaciones base

eyeOS viene por defecto con las aplicaciones necesarias para crear y trabajar con archivos de Office (con un procesador de textos), calendario, correo electrónico, (con el apoyo POP3/IMAP) y mucho más. eyeOS pretende ser un conjunto muy estable para el trabajo en línea cómoda, tanto individualmente como con otros usuarios de forma simultánea.

Mejor, desarrollos sencillos  


Hacer aplicaciones para eyeOS 2.0 es más fácil que nunca. El GUI (Graphical User Interface) está completamente hecho con JavaScript, el sistema está basado en OOP (Object-Oriented Programming) y cada parte puede ser ampliada o modificada sólo extendiendo clases y sobrescribiendo o añadiendo métodos. La nueva librería GenericDao te permite guardar y recuperar datos de la base de datos de manera transparente: No es necesario conocer SQL. Crear RIA (Rich Internet Applications) es fácil y rápido, porque el antiguo framework PHP ha cambiado. Ahora eyeOS es un framework que combina JavaScript y PHP: no hay manera más rápida y sencilla de crear una RIA.

Trabajo colaborativo

eyeOS 2.0 ha sido diseñado como un escritorio mucho más social. La nueva versión introduce nuevas formas, fáciles e intuitivas para compartir archivos, calendarios y mucho más entre los usuarios y grupos.


       Desde el punto de vista técnico 

·         Arquitectura
El sistema está claramente dividido entre los componentes que se ejecutan en JavaScript y los que funcionan en PHP, ya que al fin y al cabo, eyeOS es una aplicación web.
Las aplicaciones se dividen en dos partes: la que se ejecuta en el sistema del cliente (navegador web) y la parte interpretada por el PHP (servidor web). El lado del cliente se utiliza para dibujar la interfaz de usuario mediante JavaScript, y cuando se lleva a cabo una operación (por ejemplo, leer la base de datos), la parte interpretada por el PHP se ejecuta mediante una petición AJAX (xmlhttprequest).

·         Componentes
El sistema consta de cinco partes bien diferenciadas
- Núcleo (comúnmente conocido como kernel): Es el componente central que gestiona la implementación del resto de componentes que forman el motor de eyeOS.
- Servicios: Son los componentes esenciales que el sistema necesita para que eyeOS funcione y administre su propia actividad interna. Por ejemplo, un componente responsable de la administración de usuarios, sería un servicio.
- Bibliotecas: Son pequeños componentes del sistema que son responsables de proporcionar apoyo y seguridad al sistema de eyeOS.
- Frameworks: Se trata de los componentes de más alto nivel en el sistema. El entorno de trabajo es un componente que no es esencial, que añade funcionalidad a eyeOS, pero que por sí mismo no ejecuta operaciones para eyeOS. Es el caso del conversor de Office
- Bootstrap: Es el responsable de cargar todo el sistema antes de llevar a cabo cualquier operación.
Todos los módulos de eyeOS encajan en una de estas cinco categorías.
En el diagrama, las capas exteriores están íntimamente ligadas a la lógica de dominio, mientras que las que están más cerca del centro son componentes de nivel inferior, lejos de la lógica de dominio y más vinculadas al sistema u otros temas relacionados con el entorno.

·         Compilación
Que el backend de eyeOS esté programado en PHP tiene muchas ventajas: PHP es muy sencillo de aprender, escribir, leer y depurar y gracias a los diferentes tipos de herramientas que se introdujeron, PHP se ha convertido en un lenguaje de Programación que cambia y evoluciona rápidamente. Prueba de ello es que páginas web tan famosas como Facebook lo usan. A pesar de todo, no es un lenguaje ni ligero ni eficiente, hecho que puede afectar al rendimiento de eyeOS.
Para hacer ganar eficiencia y conseguir que eyeOS pueda funcionar bien en servidores con menos rendimiento, el código está compilado utilizando HipHop. HipHop es un proyecto desarrollado por Facebook que traduce código PHP a C++. De esta forma, es posible desarrollar las páginas en PHP, con lo sencillo que ello resulta, y la cantidad de gente que conoce el lenguaje, y luego convertir todo el código a C++, mediante un programa traductor. El resultado es código C++ que se ejecuta como extensión de PHP, consiguiéndose que no se tenga que interpretar el código cada vez que se hace una petición.
·         Qooxdoo
Las aplicaciones Web se suelen desarrollar utilizando XHTML, CSS y otras tecnologías similares. Sin embargo, el código de la aplicación de eyeOS está programado en JavaScript y se utiliza una biblioteca de gráficos llamado Qooxdoo (“QX”, para abreviar). Qooxdoo se utiliza para crear interfaces de usuario similares a las de otros escritorios mediante el uso de herramientas como Qt, GTK +, o el Swing, lo que permite desarrollar una GUI (interfaz gráfica de usuario) con JavaScript en lugar de con XHTML y CSS. El enfoque de Qooxdoo permite a los programadores crear una interfaz similar a la de un escritorio de un ordenador. Qooxdoo es un proyecto de software de código abierto independiente de eyeOS, disponible en: qooxdoo.org
Sin embargo, eyeOS lo incluye, sin que los desarrolladores tengan que descargar o añadir nada. Todas las aplicaciones de eyeOS se desarrollan utilizando esta biblioteca gráfica. Es importante revisar el tutorial de Qooxdoo para poder desarrollar y entender el funcionamiento de las bibliotecas.
El desarrollo aplicaciones para eyeOS se puede resumir como la creación de una interfaz gráfica en JavaScript utilizando Qooxdoo y llamando a las funciones de archivos en PHP que la aplicación necesite, junto con los servicios o los frameworks que puedan ser necesarios.

·         Conectividad a Bases de Datos
La flexibilidad de eyeOS tiene, en el apartado de Base de Datos, un claro ejemplo. Gracias a la capa de abstracción existente puede funcionar con cualquier motor de base de datos SQL estándar, dando más posibilidades a la solución y adaptándose a la realidad existente. Por defecto la virtual appliance que se distribuye funciona con el motor de base de datos MySQL.
Además, si una aplicación necesita también conectarse a la base de datos para crear sus propias tablas y almacenar información en ellas, tienes dos formas de hacerlo:
La primera es mediante una conexión normal a la base de datos. eyeOS proporciona una serie de métodos para obtener una conexión a la base de datos en cualquier momento.
La segunda manera es utilizando GenericDAO, una API avanzada de eyeOS que permite al desarrollador no tener que preocuparse por el SQL.

·         Conversión de Office

El motor de conversión de documentos ofimáticos de eyeOS está formado por tres partes fundamentales: el master, el slave y el motor de conversión.
El master y el slave permiten tener múltiples servidores de conversión entre los que se distribuirá la carga para conseguir así un máximo rendimiento y aprovechamiento de los recursos. Cada slave es capaz de administrarse a sí mismo para asegurar la integridad de la máquina donde se ejecute.
El motor de conversión es Calligra, una suite ofimática desarrollada por la comunidad de KDE y que nos permite tener una calidad de conversión muy buena a la vez que nos da un mayor control sobre el código fuente (es más pequeño) permitiendo una mejor y más rápida solución de problemas.
Finalmente, Calligra utiliza muchos menos recursos que otras soluciones (usar de motor OpenOffice, por ejemplo), lo que nos permite convertir más documentos con menos costes.



Las características principales de Google Calendar

La interfaz de Google Calendar es similar a otras utilidades de calendario para escritorio tales como Microsoft Outlook o iCal para Mac OS X. La interfaz con tecnología AJAXpermite a los usuarios ver, agregar y aún arrastrar y soltar eventos de una fecha a otra sin recargar la página. Ofrece una variedad de vistas, tal como semanal, mensual y agenda. Los usuarios pueden agregar rápidamente eventos de calendario tecleando frases en lenguaje natural, tal como "Cena con José mañana 7pm". Los usuarios pueden también fijar el número de días a mostrar en su modo de vista personalizada. Todos los eventos en un Google Calendar pueden ser comentados por los usuarios.
Los eventos se almacenan online, lo que significa que el calendario puede ser visto desde muchos lugares. En caso de que un usuario experimente una falla de disco duro, también significa que ninguna información se pierde. La aplicación puede importar archivos de calendario de Microsoft Outlook (.csv) e iCalendar (.ics, el formato abierto de facto de archivo de calendario), aunque en esta etapa sólo cuando los campos están en formato EE.UU. [cita requerida] Múltiples calendarios pueden ser agregados y compartidos, permitiendo varios niveles de permisos para los usuarios. Esto permite la colaboración y compartir horarios entre grupos o familias. Existen también calendarios generales disponibles para importar en la cuenta del usuario que contienen las fiestas nacionales de varios países.

¿Qué es el groupware?

El Groupware" o también llamado "Trabajo Colaborativo" es un software que en particular permite a las organizaciones comunicar, colaborar y coordinar procesos clave de negocios. El GroupWare es tan atractivo porque permite a las empresas crear un acervo del conocimiento experto y una memoria de la organización para luego compartir este conocimiento y experiencia.

El concepto "Groupware" es la convergencia de lo que en años anteriores se consideraban tecnologías independientes: como la mensajería, la conferencia y los flujos de información dentro de una organización o entre diferentes organizaciones. 
¿Cómo aplicar el GroupWare? 
Sistemas Estratégicos 
GroupWare es una plataforma poderosa para desarrollar sistemas estratégicos. Un sistema estratégico ayuda a coordinar las actividades de una organización para lograr sus metas de negocio. Permite a las empresas ser proactivas, compartir el conocimiento y trabajar en grupo en formas que las hagan más competitivas.
Los sistemas estratégicos de GroupWare son aplicaciones adelantadas que ayudan a tomar decisiones y a cumplir las metas organizacionales. Por ejemplo, un sistema estratégico permite al usuario dar seguimiento a las actividades de la competencia, tener acceso a la información de productos y supervisar el avance del ciclo de ventas con sus clientes.


Los usuarios de WEB pueden:

• Acceder a sus datos en forma segura.
• Modificar, agregar y eliminar información en sus aplicaciones desde un browser.
• Usar las características de navegación propias de Notes.
Soporte Multiplataforma


¿Para qué sirve Brief?

El brief establece una forma guiada y sencilla de iniciar cualquier proyecto de campaña para un cliente. Permite centrarse en las ideas creativas esenciales que mejor se ajustan a las necesidades y requisitos del cliente.

¿Cómo realizar un brief?
Podríamos definir el brief creativo como el documento interno de la propia agencia que inicia un proyecto o acción de campaña publicitaria, muchas veces, incluso tras la realización previa de un briefing de cliente. De hecho “brief” en inglés significa brevedad, refiriéndose a nuestro documento conciso y directo, para ajustarse a los aspectos básicos de la campaña.

En general, el brief creativo está desarrollado únicamente por la agencia (a diferencia del briefing de cliente, que debe elaborarse entre anunciante y agencia) y es  en donde se identifican las necesidades y objetivos que tiene el anunciante para lanzar una acción publicitaria concreta. El formato de este documento puede tener variaciones, según la agencia que lo lleve a cabo, al no ser un documento estándar, pero los principales puntos son los que encontramos a continuación. No obstante, hay que recordar que deberá ser siempre un documento claro y conciso para que sea efectivo.

Modelo de brief creativo
Para la elaboración correcta del brief creativo debemos seguir los siguientes pasos, por el orden en el que aparecen:
1. Definir el objetivo de la campaña: es de extrema importancia ya que según nuestro objetivo variarán las estrategias a seguir, además es vital que cada campaña tenga un único objetivo principal por cumplir. Ej: mejorar la imagen de marca / fidelizar clientes. 
2. Target: se refiere al público objetivo  sobre el que nos interesa incidir, ¿a quién queremos llegar? ¿qué nicho del mercado queremos conseguir? Recuerda que cuanto más específica sea la definición del target mejor. Por lo que debemos tener en cuenta las características y variables de segmentación como los grupos de edad,  clases socio-económicas, factores psicosociales. 
3. La promesa/beneficio: es la necesidad o el beneficio que nos dará el producto si lo consumimos. Sería el concepto de la estrategia de la campaña. Ej: jabón que cuida la piel / el coche más seguro…
 4. ReasonWhy (razón de ser): Tiene que ver con el paso anterior, debemos razonar, dar argumentos para que crean que la promesa que hacemos o el beneficio que prometemos es real. Ej: cuida la piel ya que llega ¼ parte de crema para la piel. / airbags frontales y laterales tanto en asientos delanteros como traseros.
5. Limitaciones legales: Debemos tener muy en cuenta las restricciones legales y obligaciones impuestas, como podrían ser derechos de autor, protecciones legales de marcas registradas…
En realidad, el brief permite resumir y focalizar la atención en los aspectos principales de cada nueva acción publicitaria a llevar a cabo.

Desde Agencia la Nave consideramos de gran importancia este paso previo de análisis para llevar a cabo el trabajo y cumplir con los objetivos fijados. Recomendamos destinar este tiempo de pre-análisis para no “errar en el tiro de la comunicación” y acompañar de la mejor forma posible a todos los clientes.



¿Qué es HTML5test?

The HTML5 test score es sólo una indicación de qué tan bien tu navegador es compatible con el próximo estándar HTML5 y sus especificaciones. No trata de probar todas las novedades de HTML5, ni trata de probar la funcionalidad de cada característica que se detecta.
La puntuación se calcula mediante el análisis de las muchas nuevas características de HTML5. Cada función es un valor de uno o más puntos. Aparte de la especificación HTML 5 principales y otras especificaciones del W3C se creó en el test el Grupo de TrabajoHTML, esta prueba también señala premios o puntos por soportar proyectos relacionados y especificaciones. Algunas de estas especificaciones fueron inicialmente parte de HTML5, pero ahora son desarrollados por otros grupos de trabajo del W3C. WebGL es también parte de esta prueba a pesar de no ser desarrollada por el W3C.

El examen o test también te da puntos de bonificación o premios por el soporte de codecs de audio y vídeo y el soporte a SVG o MathML incrustar en un documento HTML sin formato. Estas pruebas no cuentan para la puntuación total, porque para HTML5 no se especifica ningún códec de vídeo o de audio necesario. SVG y MathML tampoco son requeridos por HTML5.
Tened en cuenta que las especificaciones que están en estudio todavía están en desarrollo y podrían cambiar antes de recibir un estatus oficial. En las pruebas futuras se añadirán nuevas especificaciones para las piezas que se encuentran actualmente desaparecidos. El número máximo de puntos que puede ser clasificado es de 300 en este momento.

La prueba de HTML5 se ha desarrollado en GitHub. Por favor dirígete allí si encuentras algún error o piensas en una mejora a esta prueba.
html5test.com 08 de junio 2010 – versión 1.0

opone.

¿Qué es un estándar Web?

Es un término utilizado para referirse a estándares otras especificaciones técnicas que definen y describen aspectos de la World Wide Web. El término ha sido frecuentemente asociado con la tendencia de aprobar un conjunto de mejores prácticas estandarizadas para construir sitios web y a la filosofía del diseño y desarrollo web que incluye esos métodos. Algunos afectan de manera directa o indirecta el desarrollo y la administración de sitios y servicios web. Algunos aspectos a considerar son la interoperabilidad, la accesibilidad y la usabilidad de páginas y sitios web.


El organismo más influyente en materia de estándares web es el World Wide Web Consortium (W3C), que es un consorcio internacional que produce recomendaciones para la World Wide Web.


Acid 1 está relacionado con la interoperabilidad entre los principios de base de referencia y los navegadores web, especialmente para Cascading Style Sheets 1.0
Acid 2 prueba aspectos de marcas HTML, estilo CSS, imágenes PNG y data URLs.

Acid 3 se centra en JavaScript y webs 2.0