Mostrando entradas con la etiqueta inicio. Mostrar todas las entradas
Mostrando entradas con la etiqueta inicio. Mostrar todas las entradas

marzo 13, 2010

Un avance de Integración a Google


Recuerde que..
Este blog esta desarrollado en idioma español pero utilizando Google Traductor puede adecuarlo al lenguaje de su preferencia.. Favor utilice la opcion del recuadro superior derecho... y Bienvenido a Integracion Google.

Habiendo revisado con mas detalle lo correspondiente al mundo Google, observo que para facilitar su aprendizaje e integración al mundo Web, podría ser conveniente seguir los siguientes pasos:


1.- Aprender ahora si a utilizar las API Ajax de Google
     Las API AJAX de Google nos permiten crear sitios web completos y dinámicos utilizando únicamente Javascript y HTML. Pudiéndose insertar mapas, graficos o un cuadro de búsqueda dinámico en tu sitio web, o descargar feeds con tan solo unas líneas de JavaScript:

para revisar las diferentes opciones ofrecidas:

https://developers.google.com/products/



para revisar la parte práctica :

http://code.google.com/apis/ajax/playground/



Para que hagamos nuestras pruebas, solo basta con copiar los archivos html que nos presenta el Code Playground de Google, y grabarlos con nombres apropiados en una carpeta que podríamos llamar "Apicode" dentro de "www" de nuestro servidor local ( htpp://localhost ), y ejecutarlos con nuestro navegador, como hacemos con los ejemplos del curso ExtJs de Quizzpot.

El Code Playground de Google es también bastante interesante porque tiene entre sus opciones la posibilidad de cambiar el código y hacer nuestras propias pruebas desde el mismo entorno Playground, y no presenta mayores dificultades para su manejo y comprensión; no ocurre lo mismo con el entorno de desarrollo de Gadgets de Google GGE (el Google Gadget Editor), el cual si es un poco problemático para usar, y que espero que cuando veamos las API Gadgets de Google, pues ojala haya mejorado algo, bueno.. tambien algunos tips para trabajar y no tener mayores problemas.

2.- De las API Visualization de Google en particular resulta interesante observar que se puede integrar estas visualizaciones (Herramientas de Google Charts), a diferentes fuentes de datos, lo que podemos revisar con mas detalle en:

https://developers.google.com/chart/interactive/docs/dev/implementing_data_source/



...pero como tal vez nos resulte un poco complicado entender todas las opciones de fuente de datos disponibles para investigar, y tal vez sea conveniente empezar utilizando "spreadsheets" (hojas de Cálculo) de Google Docs como fuente de datos :

https://developers.google.com/chart/interactive/docs/dev/implementing_data_source/



3.- Después de revisar toda lo indicado en el punto anterior, resulta necesario probar algunos ejemplos para ver como implementar una fuente de datos, y como ya hemos sugerido resulta más fácil y conveniente empezar utilizando Spreadsheets de Google Docs como fuente de datos, así que revisemos con detalle los siguientes ejemplos del Code Playground :

http://code.google.com/apis/ajax/playground/?type=visualization#data_source_request

http://code.google.com/apis/ajax/playground/?type=visualization#using_the_query_language,

http://code.google.com/apis/ajax/playground/?type=visualization#more_query_options, aunque esta ultima opción utiliza formatos predeterminados de Google.

El empleo de las Hojas de Calculo Google resulta bastante interesante por cuanto, en primer lugar, son ejemplos sencillos y fáciles de probar (sin necesidad de haber instalado un motor de base de datos como MySQL, SQL Server, Firebird, Oracle, etc); y con ella también podemos fácilmente crear nuestras propias tablas en Google Docs, y utilizarlas en nuestras pruebas (y así podremos realmente observar la funcionalidad de utilizar Google Spreadsheet como fuente de datos); y en segundo lugar, porque para un pequeño negocio, facilmente se puede llevar su manejo administrativo empleándolas en lugar de base de datos como MySQL, SQLite, PostgreSQL, Oracle o SQLServer; cuya integración para su uso son algo más complejos, y fácilmente ya podríamos iniciarnos en el manejo de aplicaciones comerciales prácticas y sencillas, que bien ya podríamos implementar.

4.- Ya en este punto resulta necesario empezar con una revisión de la API de Cuentas de Google por lo es bueno ir leyendo:

https://developers.google.com/accounts/


Esto con el objeto de aprender a utilizar nustra Cuenta Google para Autenticarnos y Autorizar el acceso o uso de nuestros datos personales, el acceso a nuestras aplicaciones, a nuestras hojas de calculo y otros, a los que se debe permitir su uso ó ser revisadas, solamente por las personas quienes se les quiera dar acceso (además de compartir tablas con atributos de modificación o solo lectura dentro de los entorno de Google Docs ó Google Apps), resultando con todo ello que nuestras aplicaciones sean mas interesantes.

Téngase presente que a este nivel, ya nos resulta imprescindible tener nuestra Cuenta Google propia (la podemos crear utilizando nuestra cuenta hotmail u otra que utilicemos, pero conviene una gmail por cuanto nos permite el acceso a todas los elementos y herramientas de Google+), por lo que es recomendable crear una cuenta "gmail" nueva, con nuestro nombre y datos verdaderos, diferente a las que tengamos para otros usos, y anexar nuestras otras cuentas a esta nueva cuenta.

Anteriormente, era importante prestar bastante atención en revisar lo correspondiente al Protocolo de Uso de AuthSub en la Biblioteca de datos de Google de JavaScript de cliente, en el siguiente link:

http://code.google.com/intl/es-ES/apis/gdata/docs/js-authsub.html

..pero como podrán observar, este servicio ya no se encuentra disponible, y esto porque Google, en una gran cambio que ha efectuado respecto al manejo de sus cuentas, a implementado como elemento principal de toda su plataforma, el uso del protocolo OAuth (OAuth v2.0 en particular), por lo que muchos otros protocolos implementados anteriormente por Google ya han sido descartados.. pero Oauth v2.0 no solo esta disponible para diversos clientes como PHP, Java, Python, Go, NodeJS.. sino que también para Javascript, lo que nos permite su uso por el front-side en cualquier aplicación o desarrollo web, por lo que conviene empezar con revisar el siguiente enlace:

https://code.google.com/p/google-api-javascript-client/

Bueno, a estas alturas ya nos debe resultar mas sencillo comprender todo el manejo del entorno de Google en lo que respecta a sus herramientas e integracion a aplicaciones Web... las que iremos profundizando poco a poco en los siguientes posts, donde les voy a presentar un ejemplo, completo y sencillo que ya tengo casi terminado, de como integrar todas estas herramientas de Google dentro de una aplicación desarrollada con ExtJS, que incluya autenticacion de cuenta Google (para acceder al modulo), empleo de visualizaciones Google dentro de paneles ExtJS, empleo de Spreadsheets, uso indistinto de Grids Google y Grids ExtJS, utilizando por el momento a Google Spreadsheet como fuente de datos.

Pero no se preocupen si por ahora solo estamos utilizando las hojas de calculo de Google para empezar nuestro proceso de integración a integrarnos a Google; también vamos a presentar más adelante, un ejemplo detallado y sencillo de conexión utilizando como back-end PHP-MySQL, Java-MySQL, utilizando el datastore "big table" de la plataforma Google App Engine (GAE); y para lo cual utilizaremos la fuente de datos que instalaremos en nuestro Servidor Local de Pruebas, como Appserv (vea el post "empezando desde cero"), y otros que iremos descubriendo..

Como siempre no duden en postear cualquier inconveniente o interés que tengan.. y comentarnos sus pruebas y desarrollos, ahora en nuestras cajas de comentarios Facebook que hemos añadido a cada una de nuestras entradas.



Opina sobre las herramientas y API de Google





marzo 11, 2010

Herramientas para desarrollo Web


Recuerde que..
Este blog esta desarrollado en idioma español pero utilizando Google Traductor puede adecuarlo al lenguaje de su preferencia.. Favor utilice la opcion del recuadro superior derecho... y Bienvenido a Integracion Google.

( actualizado al 30/03/2013 )

Pasamos a detallar algunas herramientas necesarias para empezar con nuestros desarrollos Web...a este nivel básicamente solo requerimos de un buen editor de textos para escribir nuestro código, y navegadores Web que nos permitan "explorar" o ver el contenido de una pagina web...

Como editor podemos utilizar Notepad++, el cual además de ser bastante ligero, se encuentra habilitado para reconocer la sintaxis de HTML, JavaScript, PHP, etc..., además de permitirnos controlar el formato de texto de nuestros códigos, pues debe tenerse bien en claro que el formato de texto estandard empleados en todos los elementos de una aplicación Web ya sean archivos HTML, JS (Javascript), PHP, datos de nuestras bases de datos, etc.. es el formato UTF-8 (como lo es el formato ANSI para las aplicaciones Windows), por ello, siempre es bueno cerciorarnos que nuestros códigos siempre sean escritos en ese formato.. y para lo que solo basta revisar la opción "formato" del menú de opciones de Notepad++.

Pueden revisar: http://notepad-plus.sourceforge.net/es/site.htm




Como navegadores, y siempre optando por opciones opensource, recomendamos Mozila Firefox y Google Chrome: en lo que respecta a Firefox resulta imprescindible instalar el plug-in de Firebug, Firebug es una extensión de Firefox creada y diseñada especialmente para desarrolladores y programadores web. Es un paquete de utilidades con el que se puede analizar (revisar velocidad de carga, estructura DOM), editar, monitorizar y depurar el código fuente, CSS, HTML y JavaScript de una página web de manera instantánea y online.

En lo que respecta a Google Chrome, solo basta presionar sobre la pagina web que queramos el botón derecho del mouse y elegir la opción "inspeccionar objeto", y de allí seleccionar las opciones "console" y "resources" (para revisar mensajes de error o los remitidos por nuestra codificación, así como para ver todos los recursos empleados en una pagina Web).




Para seleccionar estos navegadores, y otros que nos pudieran resultar necesarios, los invito a revisar la pagina de Google Pack, la que nos muestra software utilitarios que deben ser imprescindibles en nuestro computador bajo Windows... son free y Opensource, como casi todo lo promocionado o auspiciado por Google... así que les conviene dar un vistazo en :








Asimismo, les envío el link de una discusión del foro del Quizzpot, respecto a las herramientas empleadas por desarrolladores de ExtJS, para que veamos que herramientas estan empleando otras personas que tienen el mismo interes que nosotros por el desarrollo Web:

Nota agregada (23/05/2010):

Resulta conveniente que al hacer las pruebas de nuestros desarrollos observemos su funcionamiento utilizando varios navegadores, nosotros realizamos nuestras pruebas utilizando Google Chrome y Mozila Firefox, pero nos han reportado de varios inconvenientes al visualizar nuestro Blog con Internet Explorer; por lo que hemos realizado algunos cambios y esperemos haber superado cualquier inconveniente; ...y resulta que el mundo Web es así, por lo que resulta conveniente considerar sus diversas opciones.
(comentaremos estos puntos en nuestro post "Localización e Internacionalización de nuestro proyecto", pero de reportarse inconvenientes no olviden de indicarlos en nuestros foros..!)


PARA DESARROLLOS EN EL ENTORNO JAVA

Pasamos a consideración algunas de las herramientas que debemos considerar si nuestro entorno de desarrollo no es solo las plataformas LAMP ó WAMP (referidos a Linux ó Windows según el caso, y al servidor HTTP Apache, la base de datos MySQL y el lenguaje PHP), sino en este caso, la plataforma de Desarrollo JAVA, que comprende al uso de los servidores Apache Tomcat, Glassfish, JBoss, Resin, Jetty, entre otros, y en este caso existen dos IDE de uso muy difundido que son Netbeans y Eclipse.

El caso es que estos entornos de desarrollo integrados multiplataformas y de código abierto son especializadas para "construir Aplicaciones de Cliente Enriquecido", en contraposición al desarrollo de aplicaciones "Cliente-livianas" que son construidas en base a navegadores y que consiste en proporcionar una interfaz gráfica, escrita con una sintaxis basda en XML que proporciona funcionalidades similares a las de un cliente "pesado" (con opciones de arrastar y soltar, pestañas, ventanas múltiples y menús desplegables). Ambos entornos han sido desarrollados en JAVA y emplean módulos ó plug-ins para mejorar y proporcionar toda su funcionalidad como cliente enriquecidos, pero el caso es que Netbeans, a causa de su gran capacidad de modularidad ha cobrado bastante fuerza en el mundo del desarrollo Java, que al igual que Eclipse soporta todos los tipos de aplicación Java (J2SE, JavaWeb, EJB y aplicaciones móviles), pero que tiene como principal característica que su sistema de proyectos se encuentra basado en Apache ANT (que es una herramienta que define un estandard para la compilación y construcción de proyectos Java y JavaWeb), contiene control de versiones y "refactoring": siendo esta ultima opción la que contribuyó en gran parte a difundir su uso entre los desarrolladores Java.

Podemos tener mas referencias respecto al proyecto Eclipse y descargar la ultima versión de Eclipe IDE versión Indigo en la pagina Web oficial del proyecto:





Asimismo, podemos lo hacer respecto a Netbeans IDE, la cual a la fecha se encuentra disponible en su versión 7.0.1, siendo la pagina web oficial del proyecto:





Otra de las ventajas de Netbeans IDE respecto a Eclipse es que en ella se pueden correr varios tipos de proyectos (Maven, Python, Ruby, Groovy and rails, entre otros), y no solo los que corresponden al entorno Java, y el caso es que, incluso los proyectos desarrollados para plataformas LAMP á WAMP ( como los que utilizamos en nuestros codelabs para el desarrollo de aplicaciones sobre el Back-End PHP+MySQL utilizando el servidor HTTP Apache convencional, como el que usamos al instalar Appserv), y también es posible "cargarlos" y trabajar con ellos como proyectos PHP en nuestro Netbeans.

Para ello, solo es necesario que instalemos los "plug-ins" correspondientes a PHP (que incluyen los frameworks Zend, Symohony y Smarty), y listo.. solo es cuestión de configurar nuestros proyectos como PHP (empezando desde cero ó como proyectos con fuentes existentes), indicar su ubicación (que puede ser cualquiera), indicar la URL con que trabajarán en nuestro servidor Apache, y que, en el caso de no haberlos grabado dentro de la estructura de carpetas "www" de nuestro servidor local, pues existe la opción de copiar nuestras a fuentes a la carpeta que corresponde a la dirección URL que hemos indicado para trabajar ...y listo, podremos modificar, mejorar y lanzar nuestros proyectos a nuestro navegador de preferencia directamente desde Netbeans ...aunque revisando con mayor detalle al complemento podrán comprobar que tambien tiene opciones para "copiar" directamente a servidores remotos vía FTP entre otras opciones...








Saludos
@Mlaynes.

Opina en nuestros foros..!







la caja de comentarios de GFC ya no funciona mas.. desde Marzo del 2012, que Google Friend Connect ya no va mas en sitios No Blogger, resulta que algunas funcionalidades tampoco trabajan en sitios Blogger como éste..



marzo 10, 2010

Empezando desde cero...


Recuerde que..
Este blog esta desarrollado en idioma español pero utilizando Google Traductor puede adecuarlo al lenguaje de su preferencia.. Favor utilice la opcion del recuadro superior derecho... y Bienvenido a Integracion Google.




( actualizado al 02/03/2012 )

Si leyeron el post anterior y tienen algun tipo de conocimiento basico de desarrollo Web pues supongo que ya deben haber hecho algunas pruebas y observado como funcionan alguno de los ejemplos que muestra el Playground de Google.. pero si este no es el caso, por lo menos ya debe haber visto y leído las cosas que son posibles hacer con el API y las herramientas de Google...

Si aun no tenemos los suficientes conocimientos para entender la inmensa literatura que nos presenta Google, pues no nos desanimemos y sigamos adelante, hay muchas formas de empezar y varias sumamente practicas.. cabe entonces preguntarse por donde empezar, por cuanto el mundo Web es de por si bastante amplio y presenta innumerables alternativas de desarrollo...

A estas alturas ya nos debe resultar familiar que hablar de desarrollo Web es referirnos a aplicaciones Cliente Servidor pero de ámbito WAN (Wide Area Network o Red de Area Amplia), desarrollado en la plataforma de Internet. Si vamos a hacer Desarrollo Web, pues entonces nos resulta imprescindible tener acceso ininterrumpido y de ancha banda a Internet, y ahora eso es fácil y económico a través de los servicios ADSL proporcionados por PSI locales (proveedores de servicios Internet), como lo son las empresas de telefonía o cable.

Luego nos resulta necesario tener nuestro "servidor Web", y como todo en Informática, existen varias alternativas, o más propiamente dicho, varios tipos de servidores que soportan HTTP (de HyperText Transfer Protocol), pero siguiendo nuestra convicción de mantenernos en el mundo Opensource o de Codigo Abierto, utilizaremos el Servidor HTTP Apache, al cual podemos acceder través de un servicio de "Hosting" o instalándolo como un Servidor Web Local en nuestro propio ordenador, en el cual podamos realizar todas nuestras pruebas; o si contasemos con una capacidad de equipos apropiada (nuestro computador y un ancho de banda aceptables), pues podríamos de alli mismo conectarnos a la Nube (Internet), y "publicar" al mundo nuestros desarrollos, pero esto, luego de haber visto el video respecto a Google App Engine del post anterior, pues tal vez no nos resulte tan interesante, por cuanto, dependiendo de nuestra cantidad de usuarios y la cantidad de operaciones que realicen, nos podrían representar costos que pueden llegar a ser bastantes altos, excepto por supuesto, se trate de aplicaciones "estáticas" o casi estáticas (una pagina web informativa o de presentación de nuestra organización o empresa por ejemplo); pero si nuestro objetivo es "interactuar con clientes, usuarios o seguidores", que lean y escriban por intermedio de nuestras aplicaciones, y que no solo podrían ser miles sino millones, pues nuestro enfoque puede variar, y apostar por otro tipo de servidores, como el datastore Big Table de Google ó el servicio C3 de Amazon, pero obvio que eso implica emplear herramientas que aun vamos a descubrir, pero vale indicar que llegado su momento nos resulten importantes y tal vez difícil de dejar de tomar en cuenta.

Como hemos indicado los Servidores Web o servidores HTTP se basan en el "HyperText Transfer Protocol" o Protocolo de Transferencia de Hipertexto, y eso significa para nosotros que nuestra atención debe concentrarse en el lenguaje HTML (HyperText Markup Language), pero para cualquier persona que haya tenido conocimientos básicos de programación, este "lenguaje" resulta ser bastante intuitivo y prácticamente va a poder ser aprendido a la par que se vaya avanzando en nuestros conocimientos de desarrollo Web, y esto principalmente porque HTML es un lenguaje "estático", que crea el contenido y los objetos que podremos observar en una pagina Web a través de un navegador..algo así como los códigos ocultos que observamos al digitar un documento en un procesador de textos, e  incluso si no utilizamos códigos ocultos ó etiquetas HTML, nuestro navegador debe mostrar lo digitado en nuestro archivo tipo texto grabado con la extensión "html".

Resumiendo... nos debe quedar claro que para iniciarnos en el desarrollo Web debemos empezar con saber como implementar nuestro Servidor Web Local, y que es necesario aprender HTML, pero aun requerimos de algunos conceptos adicionales: El Front-End y el Back-End.



Debe resultarnos claro también que una vez instalado nuestro Servidor Web Local de pruebas, de alguna manera lo que programemos debe considerar de alguna manera el uso de HTML en nuestros desarrollos, refiriéndonos a los menús, ventanas, grillas, formularios y otros componentes que interactuarán con nuestros clientes, usuarios o seguidores; y que "internamente" también debemos programar para procesar la información que solicitemos y las podamos "grabar" en una correspondiente base de datos (MySQL, SQLite, PostgreSQL, Sybase, etc).

Dentro del concepto del Front-End ó Front-side (lo que se ve en el navegador ó se encuentra del lado del "cliente"), HTML viene a ser nuestro "lenguaje" de primer nivel, pero que realmente solo nos permite "maquetear" la estructura y definir los componentes "estáticos" de nuestra pagina, como textos, imágenes, vídeos, etc. identificándolos como objetos que podremos presentar en las pantallas de un navegador. Pero como HTML es el lenguaje base para nuestros desarrollos Web necesitamos de lenguajes de un segundo nivel (como VFP, PowerBuilder u otros similares en las aplicaciones de escritorio); y en el mundo Web tenemos al lenguaje Javascript, que es un lenguaje de scripting orientado a objetos, que nos permite acceder y manejar los objetos del HTML en nuestras aplicaciones, y que principalmente, se encuentra y utiliza integrado a un navegador web ó browser, permitiendo el desarrollo de interfaces de usuario mejoradas y páginas web dinámicas, entendiendo con ello, páginas web cuyos datos dependan de lo disponemos y manejemos con nuestras base de datos, y no solo lo que podamos digitar en un editor ( aunque en este punto debe resaltarse que el lenguaje Javascript nació principalmente para trabajar con los objetos HTML por el lado del cliente ó Front-side, pero que con los desarrollos del motor V8 y de nodeJs, ahora incluso es posible utilizar Javascript por el lado del servidor) ...pero resulta que junto al desarrollo y evolución del Javascript, se efectuaron diversos cambios en los estándares del mundo Web y en los mismos Navegadores, por lo que se desarrollaron diversas bibliotecas o librerías para facilitar su uso, esos programas "mejorados" derivados de un lenguaje "principal" son conocidos como "Frameworks", y en el caso del Javascript podemos mencionar varios como Prototype, JQuery, MooTools, Dojo, YUI de Yahoo, etc., y de todas las mencionadas, una de ellas nos resulta bastante completa e interesante para nuestros propósitos, nos referimos a ExtJS (Javascript extendido)..y porque?, pues como acabamos de indicar durante el proceso de adecuación e implementación de estándares y protocolos web vigentes, que a mi parecer tuvieron como principal objetivo desmonopolizar el mercado informático de Microsoft (y en lo que mucho hay que agradecer a Netscape);, pues aún existen protocolos que recién están siendo aceptados e "implementados" por todos los desarrolladores de navegadores Web, y que ahora principalmente son Opensource, como Mozilla Firefox, Google Chrome, Opera, etc., y esto ha ocasionado que incluso hasta en nuestros días puedan haber algunas diferencias e incompatibilidades al utilizar nuestras aplicaciones web en un navegador u otro (aunque ahora son notablemente menores las diferencias); mas aún, entre sus diversas versiones; y ello supone incluir en nuestro código condicionales ó instrucciones a nivel de lenguaje HTML, y principalmente a nivel Javascript, para que nuestros desarrollos sean compatibles para todos los diversos navegadores, y en sus distintas versiones; por ello, ExtJs que es una biblioteca de Javascript pero que puede ejecutarse independientemente, en su codificación estandariza y  "elimina" esas incompatibilidades, y al ser un "lenguaje" orientado al desarrollo de aplicaciones web "enriquecidas" usando tecnologías ya estandarizadas como AJAX, DHTML y DOM, pues, eso nos facilita enormemente el desarrollo de nuestras aplicaciones, y nos permite olvidarnos de toda esa problemática de roces e incompatibilidades que ha existido durante el nada lejano desarrollo de los estándares web vigentes (incluyendo HTML5 y CSS3), y que principalmente han sido propiciados y auspiciados por los diferentes proyectos Opensource ligados al mundo Web, lográndose por fin, un marco adecuado para que nuestros aplicativos puedan funcionar bajo cualquier entorno Web... y al que también va incorporándose poco a poco lo que corresponde al desarrollo para equipos moviles (celulares, tablets, palms, etc)


NOTA: 
CSS, ó Hojas de Estilo en cascada, es también una forma de poder manipular los objetos HTML que hayamos dispuesto en una pagina web, utilizado principalmente para modelar y mejorar la presentación de nuestras paginas HTML, siendo interesante resaltar que pueden ser utilizados tanto en nuestro propio codigo HTML (mediante la etiqueta"style"), o como desde un archivo independiente, haciendo referencia a los objetos ó ID de las etiquetas de nuestra pagina HTML, siendo en este caso necesario indicar que se va a "importar" o trabajar con de determinada hoja de estilos mediante la etiqueta HTML :

Dentro del concepto del Back-End (lo que no ve el "cliente" o se encuentra del lado del servidor), necesitamos dos componentes: la Base de Datos y el lenguaje de programación que nos permita interactuar con ellas; dentro de este contexto, como siempre, en el mundo informático existen varias alternativas. Como base de datos tenemos MS-SQLServer, MySQL, SQLite, PostgreSQL, Sybase, Firebird, MongoDB, etc. (una larga lista), asi mismo tenemos varias fuentes de datos que pueden "conectarse" a nuestras aplicaciónes y desarrollos, y entre ellas podemos destacar el datastore Big Table de Google App Engine, C3 de Amazon, Access de Microsoft, o inclusive las Hojas de Calculo de Openoffice, Google Docs o MS-Office de Microsoft (éste último conocido ahora como servicio Skydrive de Windows Live); ...y como lenguajes de interpretación del lado del servidor (que principalmente nos permiten interactuar con dichas bases de datos), tenemos a PHP, ASP.Net, Java, Phyton, etc. Y bueno, apuntando como siempre a lo que es Opensource, proponemos iniciarnos utilizando como back-end a la combinación PHP+MySQL que incluso ahora es muy popular y defindido en muchos servicios de hosting disponibles en Internet (algunos incluso gratuitos o de costos bastante aceptables), pues existen varios "servidores"  donde se instala todo junto con nuestro servidor HTTP Apache, y que forma parte de lo que se denomina la Plataforma de Desarrollo Web convencional: Servidor HTTP Apache (HTML, CSS, Javascript), instalado, configurado y listo para trabajar con el back-end PHP+MySQL.

Como acabamos de indicar, existen varios proyectos opensources que nos permiten instalar al mismo tiempo al servidor HTTP Apache, el servidor de base de datos MySQL y el lenguaje PHP (e inclusive al framework Zend de PHP, y que nos facilitará en un futuro "probar" algunas aplicaciones desarrolladas específicamente para este entorno). Entre estos proyectos tenemos: Appserv, Xampp, Wamp, etc (dependiendo si lo instalemos sobre Windows, Mac, Linux ó Unix). Les proponemos usar Appserv, que es una herrramienta OpenSource para Windows, Linux y Unix que nos facilita instalar Apache, MySQL y PHP en una única instalación y automatiza las configuraciones de los servicios con los datos que nos solicite, como indicando la carpeta donde se instalarán los componentes (preferible una carpeta independiente y alojada directamente en la raiz de alguna de las unidades de disco de nuestro ordenador), nuestro password, mail de contacto y dominio (si lo tuviéramos, sino basta indicar el nombre "localhost" predeterminado, lo que nos permitirá acceder al servidor indicando "http://localhost" en la barra de direcciones de nuestro navegador). Una vez instalado AppServ, dispondremos de un servidor web y una base de datos propios, configurados de manera local, y nos permitirá realizar con ella todas nuestras pruebas necesarias en nuestro propio servidor web local (observando los resultados en nuestro navegador de preferencia que tengamos instalado como Google Chrome, Mozila Firefox, Intenet Explorer, Opera, entre otros), y observar sus resultados antes de ser lanzarla dentro de una intranet ó a la "nube" a través de internet.

APUNTES (02/03/2012) :
Aunque en esta nuestra introducción al mundo del Desarrollo Web estamos haciendo referencia principalmente a lo denominamos "Desarrollo Web Convencional" (empleando un servidor web Apache con el Back-End PHP+MySQL, y donde HTML, CSS y Javascript forman parte y vienen listo para ser usados en un servidor Apache). Vale destacar que existen otras opciones, algunas de ellas bastante especializadas como son el mundo Java y el entorno de desarrollo Web de Microsoft.. en el mundo Java (que utiliza en el Back-End el lenguaje de programación Java), podemos elegir entre varios servidores donde podemos destacar a Apache Tomcat (de la misma Fundación Apache), Glassfish (ahora de Oracle), JBoss, Jetty (utilizado por el SDK para Java de Google App Engine), o el servidor Resina por indicar algunos ejemplos, y estos son principalmente contenedores de servlets y compiladores de paginas JSP (Java Server Pages), por cuanto a diferencia de un servidor Apache HTTP convencional.. en un servidor "Java" todos nuestros archivos son primero compilados y luego ejecutados por el servidor, como cuando trabajamos con lenguajes de programación en un sistema de escritorio (y por supuesto que si nuestros archivos ya están compilados, se ejecutan directamente los archivos "objeto" de nuestro proyecto, lo que por supuesto hace mas rápidos y eficientes a este tipo de desarrollos, a diferencia que en un servidor Apache siempre se "interpreta" y luego se ejecutan cada uno de nuestros archivos tipo texto de extensión html, css, js,  php, que componen a nuestro proyecto cuando son requeridos) ..asimisno, es usual que los servidores Java usualmente no vengan vinculados a algun servidor de base de datos en particular, pues en su código ya se han definido estándares para trabajar con cualquiera de ellas, implementando incluso soluciones a nivel servidor a temas bastante sensibles para el adecuado funcionamiento de proyectos con  requerimientos exigentes de uso como son la "persistencia de datos" y la configuración y manejo de "pool de conexiones"..
Otro punto importante a tomar en cuenta, es que tanto los servidres Apache como los servidores Java son usualmente multiplataforma, vale decir pueden ser instalados en cualquier equipo con sistema operativo Windows, Linux (ó Unix ó Xenix), ó MacOS de Apple instalado, en el caso de los servidores Apache se cuenta con instaladores para cada plataforma, y en el caso de los servidores Java, solo es necesario se que encuentre instalado la Maquina Virtual de Java VM, la cual también esta disponible para todas las plataformas indicadas; y por supuesto, como "servidores web", todos ellos reconocen HTML, CSS y Javascript.
El mundo de desarrollo Web de Microsoft es bastante similar al mundo Java, pues se trata también de "compilar" y ejecutar nuestros desarrollos utilizando en este caso el servidor IIS de Microsoft (Internet Information Services), la cual trabaja con paginas ASP (Active Server Pages), y que a diferencia de todos los servidores anteriormente mencionados, en este caso los servidores IIS solo se pueden instalar sobre Windows y usualmente vienen "amarrados" a la versión de Windows que instalado en nuestro ordenador (XP, Vista, Windows7, ó Window NT Server, cada uno viene asociado a una versión especifica del servidor IIS.. a excepción de la plataforma de desarrollo WebMatrix, la que puede ser instalada indistintamente sobre cualquier versión de Windows que dispongamos (a partir de XP service pack 3), y en la que usualmente tenemos integrado al servidor los lenguajes ASP.Net, C# (pudiendo instalarse también en forma automáticamente a PHP), y viene con la base de datos SQLExpress, la cual es de facil "migración" e integración con la base de datos MS-SQL Server, aunque por supuesto, tambien puede conectarse y trabajar con diversas bases de datos como en el caso del mundo Java.
También vale mencionar que dentro del Desarrollo Web se encuentra el desarrollo para equipos moviles principalmente celulares y tablets), las cuales trabajan con sistemas operativos como Android, Symbian OS, iOS de Apple, Blackberry, Windows Phone (Window Mobile va pasar a ser obsoleto con Windows 8), etc... y en las que cabe destacar que actualmente ya se cuenta con varios navegadores que trabajan en esos equipos como Opera Mini 5 (de uso general para Android, Blacberry, etc.), Opera Mobile 10 especializado para Symbian y Windows Mobile, Teashark para celulares de ultima generación ó Skyfire ó Fenmec (Firefox mobile), vale decir, es posible hacer Desarrollo Web para moviles utilizando principalmente HTML5, CSS3 y JQuery Mobile, ó utilizando productos especializados como Sencha Touch (Javascript para moviles basado en la sintaxis ExtJS), pero resulta que estos desarrollos no aprovechan al 100% las funciones nativas que puedan tener dichos equipos (lista de contactos, GPS, cámara de vídeo, file system, etc), por lo que aunque es una opción hacer desarrollos en los lenguajes nativos de cada equipo (como Objetive-C para iOS ó Java para Android), pero ahora resulta que mas conviene "empaquetar" nuestros desarrollos Web para que funcionen "compilados" y aprovechando las funciones nativas de cada equipo, para lo cual se puede usar programas tpo PhoneGap por ejemplo, pero dado la verdadera revolución que significa el uso de los celulares y móviles en general, actualmente los  lenguajes están avanzando notablemente sus desarrollos en este campo, por lo que a corto plazo tendremos por ejemplo Sencha Touch 2.0, donde el mismo framework contará sun propio empaquetador nativo sin recurrir a PhoneGap; ó AppAcelerator Titanium, el cual busca que nuestros desarrollos Javascript (Sencha Touch, JQuery Mobile), unido al lenguaje Back-End que empleemos como PHP, Rugby, Phyton  que cuentan actualmente con su respectiva API/SDK Titanium, puedan generar su correspondiente aplicación nativa en Objetive-C para iPhone, iPad ó Java para Android), opciones que se encuentran actualmente en pleno proceso de evolución y desarrollo.


Aunque Ud. amigo lector, sea una persona con conocimientos avanzados o intermedios del mundo de Desarrollo Web, el framework ExtJs (del cual tal vez ya haya escuchado hablar), le resultara bastante interesante, y por ello nuestra recomendación que siga los pasos que vamos a indicar a continuación:

1.- Revise y empieze a seguir los pasos indicados en el siguiente link:






Estos son tutoriales desarrollado por Crysfel Villa desde México, y es quizá uno de los tutoriales mas importantes y completos que hemos observado sobre Programación y Desarrollo Web, es bastante detallado, esta en español e inglés, y presenta ayudas visuales, y aunque se encuentra orientado a lo que es el framework ExtJs, como iremos descubriendo, todo en el mundo Web se entremezcla y esta conectado... y utilizando este framework podremos fácilmente integrarnos al mundo Google, o a cualquier otro (incluido el de otros frameworks y otros entornos de desarrollo), y así realmente estar seguros de empezar a iniciar nuestro ciclo de aprendizaje utilizando estándares vigentes del mundo Web.

2.- En el Capitulo "Instalacion basica del Framework", Crysfel nos indica lo fácil que resulta instalar nuestro servidor Web utilizando Appserv, pero como este paso es bastante importante para comprender todo lo que es Desarrollo Web, pues paso a explicarlo con mayor detalle... así que pongamos a un lado por el momento al framework ExtJs y prestemos atención a lo siguiente:

El servidor HTTP Apache+MySQL+PHP se descarga de http://www.appservnetwork.com/ y alli se podra revisar las diferentes versiones que podemos descargar, y no dudemos en elegir la ultima version (claro que se nos presentan diversas versiones porque dependiendo de desarrollos que hayamos efectuado o que se nos presenten en el camino, y las herramientas de desarrollo involucradas, tal vez alguno de ellas no sea compatible con alguna versión de Apache, PHP o MySQL, pero para nosotros que vamos a desarrollar inicialmente con ExtJS todas estas probables incompatibilidades no existen)

La ultima versión publicada a la fecha es:
AppServ 2.6.0, que incluye:
Apache 2.2.8   que corresponde a nuestro servidor Web HTTP, y que por defecto permite interpretar codigos HTML y Javascript. 
PHP 6.0.0-dev   que corresponde al lenguaje de programación del lado del servidor
MySQL 6.0.4-alpha   que corresponde a la base de datos por defecto configurada para interactuar con nuestro servidor HTTP y lenguaje PHP instalado
phpMyAdmin-2.10.3   que corresponde a la interfaz grafica de administracion de nuestra base de datos MySQL, 


..pero puede utilizar sin ningun problema la versión AppServ 2.5.10 que utiliza PHP 5.2.6, y MySQL 5.0.51b que son opciones bastantes robustas...

NOTA: 
el nombre de usuario predeterminado en phpMyAdmin para acceder al servidor MySQL suele ser "root ", y debe emplear como password el que hayan colocado durante la instalación del servidor AppServ.

Como hemos indicado AppServ es una herramienta para la instalación completa del servidor (Webserver y datastore), pero como puede intuirse los componentes del servidor pueden instalarse o reinstalarse por separado (por ejemplo si queremos actualizar nuestra versión, aunque Appserv también comprende esa opción), pero por si desea indagar mas al respecto les entrego el siguiente link que les dará mayores aclaraciones al respecto, y aún cuando se trate de versiones tal vez no actuales, les pueda resulltar útil, por cuanto como ya hemos indicado, quizá más de una vez nos topemos con aplicaciones que no corran con las últimas versiones y necesitemos hacer nuestras pruebas al respecto:


Asimismo, en lo que respecta a PHP, tal vez necesario tener presente el siguiente link, por cuanto, no ahora por supuesto sino a futuro, se entenderá que al utilizar PHP a nivel avanzado así como varios de los "paquetes" que lo utilizan (como los populares servicios sociales de Wordpress, phpBB, Elgg, Drupal, etc.); pues estos requieren para poder funcionar de una manera optima, y actualmente ya es también muy exigida la "certificación" de las llamadas pruebas unitarias incluidas en el framework Zend de PHP, y para ello este link nos puede resultar importante... más incluso si vamos a trabajar a nivel intranet o mixto (acceso simultáneo a través de red local e internet)


A este nivel amigo lector, ya debe tener en claro que el servidor HTTP Apache, la base de datos MySQL y nuestro lenguaje del lado del servidor PHP (así como phpMyAdmin, PERL, PHPUnit, y muchos otros que poco a poco iremos integrando a nuestras aplicaciones), son servicios y que estos son puestos en funcionamiento automáticamente al inicializar Windows o el sistema operativo que empleemos (OS Mac, Linux, Unix, etc); y como cualquier servicio pueden deshabilitarse o habilitarse cuando queramos como por ejemplo al querer actualizar a una nueva version nuestro servidor web,de  nuestra base de datos o al instalar PERL, PHPUnit, etc.. por lo que una vez instalado Appserv resulta conveniente revisar las opciones Appserv instalada en "Todos los Programas" de windows (si es el caso), y revisar las opciones: Add-remove Windows service, para cuando queramos desinstalar o volver instalar nuestro servidor y/o la base de datos MySQL(refiriéndonos al servicio, no a la aplicación, es decir no borra de nuestro disco al servidor, sino que habilita o deshabilita el servicio); así como tambien conviene revisar con detalle los archivos bath de las rutas c:\Appserv\Apache2.2\*.bat; c:\Appserv\PHP6\*.bat y c:\Appserv\MySQL\*.bat, las cuales nos mostraran sus opciones directas de habilitación y deshabilitación de cada servicio.

Resulta asimismo interesante que se revise el funcionamiento de phpMyAdmin, y observar las base de datos y tablas existentes, asi como crear una de base de datos de prueba: podemos llamarla "tutorial" por ejemplo, y ver algunas de sus opciones, pues de hecho, las vamos a utilizar en el futuro.


Hello World


Y entonces ahora, si ya hemos instalado nuestro servidor HTTP con appserv (y al ingresar la direccion http://localhost en su navegador de preferencia : Google Chrome, Mozila Firebug, Opera, IE, etc, observan una pantalla como la indicada), entonces ya estamos listos para iniciarnos con la programación Web.. 






Para ello con su explorador ingrese a la carpeta "www" que se encuentra dentro de la carpeta "c:\AppServ" u otra donde hayamos instalado la aplicación, y dentro de esta carpeta renombre el archivo index.php por "myserver.php" por ejemplo (no elimine ningún archivo que despues nos serán muy utiles); y en esta misma carpeta cree con el notepad u otro editor de textos, un archivo que pondremos como nombre "index.html", digite en ella Hello World! y grabe el archivo...


Una vez efectuado esto, sencillamente abra el navegador de su preferencia (Chrome, Firefox , IE, u otro), y digite en la barra de direcciones http://localhost. y debe aparecer el mensaje dentro de su navegador... y listo!. Pueden buscar cualquier tutorial HTML y copiar los codigos que les sugieran en su archivo y continuar con sus pruebas... ahora si no quieren que la carga sea automatica al ingresar localhost... renombren el archivo index.html creado por cualquier otro nombre pero usando la misma extension html (testing.html `por ejemplo)... y ahora el navegador al refrescar nuestro navegador le mostrara el directorio de los archivos de la carpeta "www" y para ejecutarlos debe hacer click sobre ellos... es decir amigos, ya estan dentro del mundo Web... bienvenidos...

Otro codigo que puedan probar?


  <h1>Hello World...</h1>
  Hello guys, my name is <b>Miguel Angell</b>
  <p style ="color:red;">Bienvenido</p>
  <p style ="color:blue;">Welcome</p>
  <p style ="color:green;">Bem-Vindo</p>

  ...y digite lo que desee.






NOTAS:
  • Puedes editar tu archivo en tu editor de preferencia, hacer las modificaciones que quieras.. salvar los cambios ..y al refrescar tu "browser" observarás lo que has efectuado...
  • Puedes también conseguir mas muestras para probar en conocidos tutoriales como w3school.com entre otros, y seguirlos para incrementar tus conocimientos de HTML, CSS, Javascript.. ó cualquier otro tema referido al mundo Web.



Algo mas elaborado? 

Siga esta direccion: http://ckeditor.com/demo, y llegara a un Editor Web on-line, es decir como si trabajasemos con Word de Microsoft u OpenOffice, y sencillamente para pasar lo que tenemos en el editor, seleccionemos la opcion "fuente HTML", y a continuación "Seleccionar todo" (Ctrl+A); luego peguemos lo que tengamos en memoria en un archivo utilizando notepad u otro editor e textos, que también grabaremos en la carpeta "www" de nuestro Appserv, y la llamamos mytest.html por ejemplo... luego, al refrescar nuestro navegador o ingresar a http://localhost nuevamente, deberia aparecer nuestro archivo mytest.html; y al hacer click sobre él, debe aparecer en nuestro navegador lo que nos muestra el editor como ejemplo.





Algo ligado a Google? 

pues volvamos al Playground de Google, y seleccionemos de alli alguna opcion de nuestro agrado...elijamos la API de Earth (Hello Earth! por ejemplo), de Maps (empecemos con el ejercicio :Map simple ), o cualquiera de las API Visualization, las que sea de nuestro agrado ... en cualquier caso, vayamos a la opcion "Edit HTML" del ejercicio que estemos revisando y seleccionemos todo el código mostrado (boton derecho del mouse, opción "seleccionar todo"); peguemoslo luego en sendos archivos de nombre apropiado: earth01.html, map01.html o visual01.html, etc. como corresponda.. y ejecutelos en su navegador luego de refrescar http://localhost por supuesto, y observemos los resultados...
  



 





y esto es solo el comienzo... 

pueden ahora ingresar a http://youtube.com o www.slideshare.net, y observará que al ejecutarlos al final o al comienzo respectivamente, se puede tener acceso a opciones como URL (léase enlace) y EMBED (léase embebido), y la opción que nos interesa es la EMBED, que se encuentra contenido dentro de etiquetas del tipo <div> <object> ó 
<frame>; en todos los casos, se puede pegar todo este contenido en nuestras paginas web.. hagamos también pruebas al respecto... y finalmente revisemos con mas detalle como pegar imágenes utilizando nuestro mismo editor on-line (donde podemos primero poner todo lo que deseemos antes de pasarlo finalmente al archivo html que probaremos... y por supuesto, revisemos cualquier tutorial respecto a HTML, luego CSS y finalmente Javascript, y de manera bastante simple ya tendremos una primera visión completa de lo que es Desarrollo Web en una de sus principales opciones: la convencional, pues como veremos mas adelante, este mundo presenta varias variantes y opciones interesantes que podemos y debemos considerar...

Volviendo con ExtJs y el Curso del Quizzpot

3.- Cabe asimismo, también mencionar que el Tutorial de Crysfel inicia desde la versión 2.2 del framework  ExtJs, y a la fecha ya se efectuó el lanzamiento de ExtJs4, siendo la ultima versión compatible 100% a la versión ExtJs utilizada en el Curso de Crysfel la version ExtJs-3.4 la que podemos descargar de :

http://www.sencha.com/products/extjs3/download/

..y bueno, por supuesto que las versiones de ExtJs van seguir lanzándose al mercado y mejorando cada vez (mas aun que nos referimos a un framework bastante vigente y activo); pues no nos preocupemos, y sencillamente modifiquemos el nombre de la carpeta a la versión que empleemos (la última por supuesto), y adecuemos el tutorial a la ultima versión de ExtJS y estaremos mucho más actualizados...
..Pero tengamos en cuenta que si utilizamos ExtJs4, las instrucciones de manejo de forms, grids y modelamiento de base de datos principalmente han tenido bastante modificaciones para optimizar su manejo (entre otros cambios internos o de "core" importantes), es por ello que les indicamos donde bajar la versión ExtJs 3.4 la cual es totalmente compatible con lo desarrollado en el tutorial; por supuesto que tal vez seria conveniente empezar a reestructurar e incluso reescribir todo el Tutorial de Crysfel bajo ExtJs4 como parte de nuestro proceso de aprendizaje personal.

A este ultimo apunte, debo también resaltar que ExtJs-3.x esta aún completamente vigente y hay importantes desarrollos en esta plataforma, varios de ellos opensource (pueden revisar el proyecto Sdsimple, (usuario passer password passer), cuyas fuentes podemos incluso bajar a nuestros propios ordenadores personales y acondicionar a nuestras necesidades (consulte en este enlace mas detalles de nuestra versión del proyecto sdsimple), que en este caso, hemos adecuado a la versión ExtJs-3.4 ..teniendo pendiente migrar a la versión ExtJS4..

La curva de aprendizaje de ExtJs no es rápida, pero su lógica de programación es totalmente comprensible e intuitiva para personas con conocimientos previos de programación, y contempla el uso de estándares POO modernos y en pleno vigencia y desarrollo dentro del mundo del desarrollo WEB que los hacen muy atractivo para desarrolladores nuevos.

y bueno amigos, espero que con toda esta introducción puedan empezar sin mayores contratiempos el Curso de ExtJS que nos presenta Crysfel y empecemos a sumergirnos poco a poco dentro del mundo de Desarrollo Web desde cero y sin mayores contratiempos.. ...y por supuesto, pueden postear cualquier duda que tengan directamente aqui o en el Foro de Quizzpot.



Cloud Computing


Cual debe ser nuestra meta? Hasta donde podemos desarrollar? Cloud computing o Nube computacional, se refiere al concepto de lo que significa utilizar Internet actualmente a través de servicios "integrados" y corriendo todo en Internet, como las redes sociales (Window Live, Google Apps, Facebook, Hi-5, Twitter, Google+, etc), e-commerce; e incluyendo la implementación, administración y seguimiento remoto de todo tipo de negocios, o realmente todo lo que se nos pueda ocurrir; accediendo a ellos a través de nuestros navegadores -sin importar que trabajemos sobre Windows, Linux, Unix, Apple, etc.; ó si utilicemos Google Chrome, Firefox, Internet Explorer, etc. ...al indicarles el link del proyecto sdsimple lo que intentamos es mostrarles de una manera concreta que el mundo del Desarrollo Web no solo son paginas Web y redes sociales, también son aplicaciones administrativas y de gestión y todas ellas pueden interactuar entre sí  (y muchas de ellas también opensource y bajo licenciamiento GPL)... y esa es la realidad actual del mundo Web, y es adonde debemos apuntar cada vez que nos conectemos desde nuestras casas, oficinas o de donde tengamos acceso a Internet con nuestros ordenadores personales, de oficina, telefonos celulares, servicio de TV-cable, etc. ..y eso es lo que siempre debemos tener presente cuando empecemos a bosquejar nuestros proyectos.


Opina respecto al framework ExtJs


Opina sobre AppServ y los servidores Apache+PHP+MySql