Desarrollo Web para móviles en HTML5 con creativeLIVE y O’Reilly

HTML5 Mobile Web Development

Gracias a la cuenta de Twitter de creativeLIVE me entero que en asociación con  O’Reilly estarán dictando un Curso de Desarrollo Web para Móviles online y completamente gratuito .

El curso comienza el día 5 de Octubre, hasta el 7 de Diciembre, todos los jueves martes, con una duración de 10 semanas y cada sesión durará entre 90 a 120 minutos.

Por supuesto, el curso será dictado en inglés, lo que puede o no ser un problema dependiendo de cómo te defiendas con ese idioma (¿no te había dicho ya que tenías que aprender inglés?) y las sesiones comenzarán a las 3:00 p.m., hora del Pacífico. Sin embargo, hay que tener en cuenta que las primeras cinco sesiones se realizarán en horario PDT (Pacific Daylight Time), mientras las 5 siguientes se realizarán en horario PST (Pacific Standard Time) ¿Qué significa eso? que en el caso de Venezuela, las primeras cinco sesiones serán a las 5:30 p.m. (17:30) y las últimas cinco a las 6:30 p.m. (18:30), una hora más tarde.

Puedes calcular la hora correspondiente a tu país usando The World Clock – Time Zone Converter.

¿Qué vas a aprender en este curso? Veamos:

  • Discover what’s new in HTML5, CSS3, and JavaScript for mobile development
  • Build your own Twitter App with these technologies
  • Create apps that detect the orientation of mobile devices
  • Use geolocation and maps in a location-based app
  • Enable mobile users to use your app offline
  • Use HTML5 web forms to create an address book app
  • Create drawings and animation with JavaScript and HTML5′s canvas element
  • Use HTML5′s audio and video elements to build a movie trailer app

Interesante ¿no? Quizá esto es lo que necesitabas para animarte a trabajar con HTML5 y comenzar con el desarrollo de aplicaciones web para móviles, y ambas a la vez.

Importante: Hay algo que debes tener en cuenta, y son los requisitos:

  • Experiencia con HTML, CSS y Javascript.
  • Una laptop con Mac OS X (10.6).
  • Safari 4 o superior.
  • Simulador para iPhone y iPad.

Como ves, los dos elementos que están en negrita pueden resultar un problema para aquellos que no usamos Mac, así que miré en la descripción de las sesiones y noté que ninguno de los temas requiere algún elemento particular de OS X, por lo que lo de la laptop está descartada… excepto quizá por el tema del Simulador para iPhone y iPad.

Por supuesto, estos simuladores están diseñador para Mac OS, así que si no los tienes estás en problemas, a menos que –como yo- busques alternativas. Te cuento de algunas que he encontrado:

  • iBBDemo2: Aplicación OpenSource creada por Shaun Sullivan, CTO de Blackbaud Labs, creada en Adobe Flex y corre bajo Adobe AIR, lo que significa que funciona tanto en Windows como en Linux y Mac. Básicamente es un emulador de Safari (lo que implica que no es posible llamar a elementos nativos de iOS) que tiene el plus de trabajar tanto como emulador de iPad como de iPhone, usando el User Agent correspondiente.
  • iphonetester.com: Como puedes imaginarlo, un emulador de iPhone online. Para un mejor funcionamiento debe correrse (como es de esperarse) en algún navegador que haga uso de Webkit (como Safari o Chrome), permite rotación pero sólo emula a iPhone y sólo tiene acceso a aplicaciones en línea.
  • MobiOne: No sólo un emulador (que también lo es) sino todo un IDE específicamente creado para diseñar aplicaciones para iPhone de forma completamente gráfica. No voy a ahondar sobre él ahora (porque apenas lo descubro) pero es una interesante herramienta de la que seguramente charlaremos en otro artículo. Lamentablemente no tiene algo parecido para iPad y es creado para Windows. Habrá que ver si puede correrse en Linux bajo Wine o algo parecido.

Bien, creo que con esto tenemos suficiente para atender este curso, así que yo que tú voy colocando las fechas en mi agenda (yo ya las puse en Google Calendar).

Eso sí, si yo fuese tú estaría muy pendiente de los sitios creativeLIVE y O’Reilly porque hay mucho material para aprender allí.

Etiquetas de Technorati: ,,,,

Aprende Flex en una semana con “Flex in a Week”

flexweek_248x148[1] Si eres como yo, que quieres aprender cuanta cosa te caiga en las manos y andas emocionado con la posibilidad de aprender a trabajar con Flex, te habrás dado cuenta –como yo- que hacerlo puede llegar a ser complicado, no sólo por la cantidad de material que existe en la web, algunos muy buenos y otros realmente no tanto, sino por el problema que significa conseguir el tiempo para realmente dedicarte a hacerlo.

Hace como una semana descubrí Flex in a Week, un video-curso de Adobe para comenzar a trabajar con este framework y, por supuesto, haciendo uso del IDE de Flex de Adobe, Flash Builder 4.

Se trata de una serie de videos cortos, separados en temas y agrupados por días. Cada “día” del curso es de aproximadamente un par de horas, pero eso no significa que debas verlos todos. Yo, de hecho, acabo de completar el primer día, que comencé hace una semana.

Eso sí, como pueden suponerlo, el curso está en inglés, lo que es un punto en contra para aquellos que no comprendan la lengua de Shakespeare, pero si tu nivel es intermedio no tendrás mayor problema.

El curso abarca desde los conceptos más básicos hasta la creación de una aplicación en Adobe AIR, pasando por la creación de skins y modificación de la interfaz por medio de CSS. También cuenta con ejercicios para que vayas poniendo en práctica lo que vas aprendiendo.

Realmente un  recurso interesante y muy valioso para aprender a moverte en el mundo de Flex.

Otra cosa a favor es que también cuenta con una versión para iTunes en plan podcast y una versión en FLV para que puedas verlo desde Adobe Media Player, con lo que no tienes que ir hasta el sitio de Adobe para poder verlos.

Así que, si la barrera del idioma no es un verdadero problema, tampoco lo será aprender Flex, a tu ritmo, desde la comodidad de tu computadora. Incluso no necesitas tener internet si los descargas, así que no hay excusas.

Y en serio, si no sabes inglés, deberías estar haciendo todo lo posible para aprenderlo lo mejor que puedas si quieres dedicarte a este negocio.

Etiquetas de Technorati: , , ,

Consejos para Enfrentar un Proyecto Web – Javascript

Nota: Este post es parte de una serie titulada Consejos para Enfrentar un Proyecto Web y viene después de Del Mockup al CSS

Una de las cosas más importantes y potencialmente peligrosas del mundo web actual es el uso de Javascript. La aparición de frameworks como jQuery, MooTools, Prototype, YUI, etc., le han dado nueva vida a este lenguaje que solía ser un gran dolor de cabeza, sobre todo para nóveles programadores, por la dificultad para comprender el DOM, lo tedioso que significaba hacer cosas realmente serias (más allá de hacer una ventana pop-up con un tamaño determinado y poco más) y los problemas que implicaba hacer un código crossbrowser.
A esto se le une AJAX, este conjunto de tecnologías que, al combinarlas, nos permiten manipular datos vía javascript de forma asíncrona y sin necesidad de refrescar toda la página. La aparición en nuestras vidas de Gmail (de honorable memoria) fue el fenómeno que realmente nos hizo pronunciar las palabras mágicas de todo buen geek: AJAX FTW!
Claro, no todo es dulzura en las intarwbz. La facilidad en la que se ha convertido el uso de javascript (sobre todo por librerías como jQuery) también ha sido motivo del abuso que se ha hecho de él. Evitar esos abusos será la misión de este post.

  1. Dile No al javascript obstrusivo

    Uno de los grandes males que han hecho a la humanidad editores como Dreamweaver (y yo amo a DW) es la utilización de javascript dentro del HTML (lo que se conoce como javascript obstrusivo). Nunca será suficiente decir que combinar XHTML con CSS y Javascript en la misma página es una terrible idea. Afortunadamente, es una práctica que va desapareciendo, pero es común verla sobre todo en quienes comienzan. Entonces, para evitar eso, digásmoslo de una vez: El código javascript (todo el código) debe ir en su archivo correspondiente, jamás mezclado con el HTML. Luego podrás llamarlo desde tu página usando la etiqueta <script></script>.

  2. Comenta tu código, no seas perezoso(a)

    Cuando escribimos código -confesémoslo- tenemos la costumbre de hacerlo todo de una vez (o al menos a una velocidad que nos permite rápidamente saber qué hacemos), sin embargo solemos pagar el precio de no haber hecho comentarios cuando tenemos que revisarlo después de un tiempo (que puede ser un mes o menos incluso) y no nos acordamos de qué fue lo que hicimos o, peor aún, cómo demonios hicimos que funcionara.
    Sí, es cierto, debemos mantener los archivos lo menos pesados que podamos, cada línea cuenta y cada byte también pero -y para ello está los dos puntos siguientes- nuestros archivos deben ser reusables (no tiene ninguna gracia tener que escribir el mismo código una y otra vez) y en ello hacer comentarios es invaluable. Esto es doblemente importante si estamos hablando de un plugin, por ejemplo, que puede luego ser utilizado por otros. No es nada agradable tener que adivinar cómo lograste curar el cáncer por medio de javascript.
    No es tampoco que tengas que escribir un tratado sobre tu código. Pequeños y precisos comentarios serán suficientes. Recuerda: keep it simple.

  3. Descomprimido para desarrollo, comprimido para producción.

    En nuestra lucha de mantener nuestros archivos al mínimo, una gran herramienta es la posibilidad de comprimir nuestros archivos. Al hacer esto, eliminamos tanto los comentarios como los espacios en blanco innecesarios, reduciendo por suspuesto el tamaño del archivo.
    El inconveniente que tiene esto, sobre todo a la hora de volver a nuestro js para hacer cambios, adiciones y/o mejoras a nuestro código es que éste será -cuando menos- difícilmente comprensible por nosotros mismos, cuando no ilegible. Es por eso que prefiero mantener mis archivos originales intactos (con sus comentarios, saltos de línea y formato) y una versión comprimida que será la que irá al servidor de producción. De esta manera siempre puedo hacer los cambios que necesite sin comprometer mi (poca) salud mental ni mi maltratada vista.
    Para hacer esto hay cientos de herramientas: compresores online, scripts php (como el proyecto Minify) o add-ons de Firefox (como Page Speed). Excepto en el caso de Minify, que se encarga de hacer la compresión al vuelo haciendo innecesario crear archivos comprimidos aparte, puedes mantener tus archivos en una carpeta (en mi caso los pongo dentro de una carpeta llamada _development, dentro de la carpeta js) y subir sólo los archivos comprimidos, teniendo lo mejor de ambos mundos.
    Valga el comercial no pagado, si usas Firefox y no tienes Page Speed realmente te recomiendo que lo pruebes. Yo solía usar el add-on de Yahoo!, YSlow, pero Page Speed tiene varias mejoras respecto a éste que me hicieron cambiarme. Que se encargue de comprimir los js y css es una de ellas.

  4. Mantén tu código en un sólo archivo

    Sobre todo cuando trabajamos con algún framework e incluímos uno o más plugins, tenemos el problema de tener varios archivos, cada uno para cada cosa. Como decía antes, esto es muy bueno para el desarrollo, pero con un costo innecesario en archivos por descargar en producción. Nuevamente en este caso, Minify se encarga de unir todos los archivos por nosotros, pero si por alguna razón no podemos o no queremos usar esta herramienta (personalmente he tenido ciertos problemas cuando no tengo tiempo de sentarme a resolverlos, pero sé de gente -seguramente más lista e inteligente- que lo usa sin inconveniente alguno). En caso de hacerlo a mano, bien podemos crear un nuevo archivo donde colocaremos todo nuestro código comprimido, siendo éste el que subiremos al servidor. Recuerda que nuestro objetivo final no es sólo hacer que nuestros archivos pesen lo menos posible sino reducir también las llamadas al servidor, mientras menos llamadas, mejor.

  5. Javascript no es CSS, favor no confundir

    A medida que javascript se hace más sencillo de trabajar y en consecuencia más poderoso -entre otras cosas- para manipular el DOM, es muy fácil abusar de sus bondades sobre todo a la hora de manipular el contenido (por medio de AJAX, por ejemplo) o el aspecto visual (haciendo que javascript reemplace atributos CSS o usando algún método de reemplazo de fuentes, como Cufón).
    Volveré al viejo tema: Progressive Enhancement, añade no sustituyas, crea pensando en lo más básico y luego añade funcionalidad a medida que el browser cliente pueda aceptarla.
    Si la pereza o la emoción te hacen olvidar que es CSS y no a Javascript a quien le corresponde el aspecto visual le darás una pobre experiencia a los usuarios que por alguna razón no puedan activar javascript en sus browsers o simplemente estos no lo soporten.
    Si hablamos de contenido. Es claramente un error grave respecto a SEO y semántica. No olviden que los buscadores (y los exploradores para ciegos) no pueden leer javascript.
    ¿Cuál es la solución entonces? Lo que he dicho antes, trabaja en base a un buen CSS y luego utiliza javascript para mejorar la experiencia de usuario, tanto a nivel visual como de funcionalidad.
    Hay, sin embargo, una excepción a esto y es cuando por razones de seguridad deseas epecíficamente que ciertos elementos no se presenten si no está activado javascript, como por ejemplo, para permitir comentarios o mostrar una dirección de correo electrónico de la que no quieres que se enteren los bots de spam.

  6. Carga el javascript al final de tu (X)HTML

    Si bien lo normal es cargar el CSS dentro de la etiqueta head, en el caso de los archivos javscript se recomienda que sean cargados al final del archivo. La razón principal para hacer esto es que te permite cargar todo el contenido y los estilos antes de la funcionalidad, evitando que el usuario deba esperar a que el código también se cargue para comenzar a ver algo de tu sitio. Recuerda, el internauta es un ser impaciente, apenas tienes unos 5 segundos para evitar que tus usuarios abandonen tu sitio para navegar por otras tierras que no le hagan esperar una eternidad

  7. No todo requiere un plugin

    Ya que estamos con el tema de los frameworks (aquí debo decir que yo sólo conozco jQuery, así que soy completamente ignorante respecto a otros frameworks de javascript) hay que hablar de otro vicio: el uso indiscriminado de plugins.
    Es cierto que son geniales y que te ahorran mucho trabajo (sobre todo cuando los tiempos no te dan para mucho), pero precisamente su generalidad en algunos casos resulta un problema porque aumentan innecesariamente el peso de nuestro javascript. En muchos casos resulta mejor (y a veces incluso más fácil) escribir tu propio código. Sé que al principio puede resultar complicado y arduo, pero ciertamente ganarás en ahorro de código y aprendizaje. En caso que no sea posible (o no tengas ganas de arrancar desde cero) puedes hacer el camino contrario, adaptándolo a tus necesidades y eliminando el código que no necesites.

Y bueno, esto será todo esta vez. Si piensan que me dejé algo en el tintero (que seguro lo hice) o hay alguna cosa sobre la que quisieran que conversáramos, me encantaría leer sus comentarios.

, , , ,

Consejos para Enfrentar un Proyecto Web – Del Mockup al CSS

Nota: Este post es parte de una serie titulada Consejos para Enfrentar un Proyecto Web y viene después de Consideraciones Generales.

Update: Hay una edición de este post en Cristalab: Cómo afrontar un proyecto web. Parte 1: Del Mockup al CSS.

En esta ocasión, trataremos tres partes del proceso que son fundamentales en el desarrollo de nuestro proyecto web. En este caso hablamos del diseño de un sitio web en XHTML, pero parte de las consideraciones escritas aquí valen también para otro tipo de proyectos/tecnologías.

  1. Mockup: Piensa, Intenta, Borra, Piensa, Intenta de Nuevo.

    La ventaja de hacer mockups antes de comenzar a maquetar es que te permite experimentar diferentes estructuras para el sitio, buscar las fórmulas que funcionen mejor en cuanto a usabilidad, accesibilidad y legibilidad.
    Al contrario de lo que algunos piensan, el momento de la planificación inicial es uno de los más críticos en el proceso de realización puesto que mientras más tiempo inviertas en organizar tu sitio/aplicación, menos tiempo gastarás haciendo modificaciones de última hora o resolviendo imprevistos, como que de repente a tu cliente se le ocurra que quiere agregar un link a la cuenta de Twitter que su hijo le abrió el día anterior.
    Este es entonces el momento perfecto para hacer lo que se conoce como “análisis de software”. Pensar en cómo será el producto antes de comenzar a crearlo es avanzar el 50% del trabajo, sin haber escrito una línea.

  2. Mientras Más Propuestas, Más Problemas.

    Aunque a primera vista te parezca que darle varias opciones a tu cliente te hará quedar como un genio y es -en sí- una gran idea, realmente no lo es, al contrario es una idea pésima. A excepción de unos muy pocos clientes, que debes atesorar el resto de tu vida, que tienen una cierta idea de lo que significa tener presencia en la web y cómo eso puede reportarles beneficios reales y -sobre todo- que tengan una idea más o menos clara de lo que realmente desean, la mayoría de los clientes son como niños que comienzan a entrar en el mar: No tienen real idea de lo que están haciendo y de cuánto puede influir el diseño en el éxito o fracaso de su sitio.
    Siempre recordaré a aquel cliente que una vez me dijo que quería tener muchas propuestas, como cuando compra un automóvil, que puede escojer entre una amplia gama. Tuve que explicarle que en su caso sería como pedir tener una amplia gama de automóviles hechos a mano para poder escoger: ninguna empresa hace eso porque la pérdida sería mayor a la ganancia.
    Lo que suele ocurrir la mayoría de las veces es que presentas una serie de diseños diferentes y la selección final es la combinación de partes de un diseño con partes de otro y así hasta el infinito. En otras palabras: más propuestas sólo aumentarían la indecisión del cliente y, por un lado atrasarían el proyecto (porque necesitaría más tiempo para decidirse), mientras por el otro hay más posibilidades de que la escogencia final sea un diseño completamente diferente, una especie de Frankenstein web hecho con piezas de tu propuesta.
    ¿Solución? Presenta dos -máximo tres- propuestas y prepárate.

  3. Maqueta de Forma General y Flexible.

    Tu mejor arma es pensar fuera de la caja, ir más allá que cobrarle por hacer ese pequeño portal de lindos colores y grandes imágenes. Si tu cliente te resulta fiel, querrá que te encargues de cosas como el mantenimiento del sitio o de sus futuros rediseños. Si no quieres que estas futuras tareas se conviertan en un verdadero dolor de cabeza, lo mejor es buscar una forma de maquetar (y con maquetar me refiero a (X)HTML) de tal manera que los futuros cambios no impliquen ninguna o la menor cantidad posible de cambios en la estructura del sitio. No importa lo fácil o difícil que resulte cambiar o no una o dos etiquetas, si la estructura está bien hecha ¿por qué deberías cambiarla? Lo ideal siempre sería que un cambio en el diseño pueda realizarse con CSS y/o cambiando las imágenes correspondientes, sin necesidad de tener que repensar sobre la estructura o la legibilidad de tu sitio.
    Por otro lado, mantener una estructura general y flexible siempre te permitirá crear plantillas/snippets que funcionen en casi todos tus proyectos, haciendo más eficiente la reusabilidad.

  4. Semántica, Estándares, Validaciones.

    Sí, quizá yo sea un purista (aunque espero por el FSM que no sea así), pero al menos en los dos primeros casos me parece que lo mejor es apegarse a la norma; en el tercero acepto cierta flexibilidad. Aún recuerdo a Freddie diciendo una gran verdad: Si un sitio cumple su objetivo (generar dinero) ¿Qué demonios importa si el sitio es válido?
    No puedo decir que Freddie no tenga razón, después de todo, es un negocio de lo que hablamos, pero también es cierto que un etiquetado y un css válido permiten una interpretación más fiel en los navegadores y ayudan a conservarlos en el tiempo. Personalmente me preocupo por la validación pero dando prioridad a la funcionalidad. Sé que hay gente que piensa que no sirve de nada, incluso he oído gente que cuestiona los estándares por ser impuestos por la W3C, pero en ese caso, lo dejo a criterio de cada quien. si te funciona, está bien por mí, pero, por amor a lo más sagrado, ¡deja de maquetar con tablas!
    Ahora, sobre la semántica y los estándares, creo que nisiquiera merece la pena la discusión. Creo que es más que obvio que estas dos herramientas juntas son prioridad sobre todo en orden al SEO y la accesibilidad.

    Personalmente, procuro maquetar siempre bajo XHTML Strict, lo que me ayuda a descubrir posibles errores (como que olvide cerrar una etiqueta o colocar un “alt” a una imagen) y  CSS2.1.

  5. Inspírate en Quienes Quieras, No te Copies de Nadie

    Nadie quiere ser reconocido por robarse el trabajo de otros, aunque de un tiempo a esta parte parece estar de moda creer que es válido tomar cualquier cosa de internet y hacer creer que son propias, o peor aún, pedir a otros que “nos regalen” la solución a nuestros problemas, como si preguntar en un foro equivaliese a encontrar una manada de esclavos que hagan el trabajo por el que yo voy a cobrar. No, nadie quiere ser reconocido de esa forma.
    Sin embargo, es perfectamente válido mirar el trabajo de otros, ver cómo solucionan los retos que sus proyectos representan, decubrir nuevas paletas de colores o formas ingeniosas de lidiar con el proyecto. Nadie puede acusarte de inspirarte, pero copiarte sólo te dará mala fama en internet (de eso puedes estar seguro) y, en algunos casos, hasta acarrearte problemas legales.

  6. Usa un CSS Reseter

    Todos los que hemos maquetado sitios sabemos el dolor de cabeza que significan los navegadores y sus interpretaciones particulares del CSS, por lo que un Reseter que nos permita partir de un punto en común resulta un gran aliado a la hora de solucionar problemas con esto. No siginifica que todos los problemas de modelo de caja quedarán resueltos (el trabajo no puede ser tan fácil), pero sí que ayuda mucho a resolver al menos los más comunes.
    Aquí veo venir la pregunta obvia: ¿Cuál reseter usar? Hay cientos en internet. Lo mejor que puedo hacer es hablar de mi experiencia: Comenzar usando uno relativamente general y luego irlo personalizando de modo que funcione de la mejor forma posible para tus proyectos. Algunos de los más populares (que conozco) son el Tripoli Reset (en este artículo de Daniblog se explica muy bien y en español), el CSS Reset de Eric Meyer y luego, frameworks CSS como 960, YUI o el muy popular Blueprint.

    ¿Por qué personalizarlo? No es que sea obligatorio, pero quizá haya cosas que no te gusten del Reseter que selecionaste (como que quite el “bold” a la etiqueta “strong” o que elimine las viñetas de las listas), si ese es el caso, bien puedes irlo ajustando a tus necesidades y forma de trabajar.

  7. Ordena y Comenta tu CSS

    Hay pocas cosas tan molestas como encontrarse un código sin comentarios que te obliga a leerlo todo para entender por dónde van los tiros. El CSS (aunque no es código) no es la excepción. Escribir los estilos como se te vayan ocurriendo sólo te asegurará dolores de cabeza al tratar de arreglar algo después de haber cerrado el archivo o -peor aún- a la hora de hacer un rediseño.
    Es por eso que son tan importantes los comentarios como el orden en que se escriben los estilos (Recuerda que los estilos son en cascada, es decir, un estilo se sobreescribe con el siguiente en el orden en que aparecen en el CSS). No tienen que ser extensos comentarios explicativos, puede ser simplemente para separar el código. Yo suelo dividir mi CSS de esta manera:

    1. Reseter
    2. Etiquetas
    3. Layout (Estructura General del Sitio)
    4. Elementos (Los elementos internos del Header, el Contenido, el Footer…)
    5. Clases (Que no están necesariamente vinculadas con una parte específica del documento)

    En cada división coloco un comentario para localizarlas más fácilmente. Hay formas más elaboradas para hacer esto, pero yo prefiero cosas sencillas y efectivas. Lo realmente importante es que sea un documento legible y que evite tener que estudiar en el MIT para poder hacer cambios al CSS

  8. ¿Progressive Enhancement (Mejora Progresiva) o Graceful Degradation (Degradación Agraciada?)?

    Otra de esas discusiones eternas con argumentos válidos de cada lado. Personalmente soy partidario del Progressive Enhancement, pero una vez más digo que no hay que cerrarse a diferentes perspectivas. Por lo tanto, mi consejo es evaluar qué es mejor para cada proyecto y utilizar la técnica que resulte más efectiva para cada caso. Esto sobre todo es cierto cuando se trata de rediseñar un sitio, puesto que te encuentras frente a algo que ya ha hecho otro (o tú mismo) desde una de las dos perspectivas. Si me permites el consejo, dale prioridad al Progressive Enhancement sobre todo si vas a construir el sitio desde cero.

Bien, creo que con esto tenemos bastante, como siempre, hay cosas que se quedan en el tintero y cosa que podrían profundizarse más, pero este artículo sería interminable y no es la intención. Sería de gran ayuda leer sus impresiones y críticas, además de nutrirnos todos con sus experiencias.

En nuestro próximo encuentro, charlaremos acerca de Javascript.

Etiquetas Technorati: , , ,

Seguir

Get every new post delivered to your Inbox.