Curso VueJS – Hola Mundo (Clase 1)

Hola a todos, en esta entrada quiero escribirles sobre está librería (progressive framework, como ellos lo denominan) que he estado probando y utilizando últimamente, y que la verdad me ha parecido increíble, se trata de VueJS [Sitio Oficial].

VueJS Logo

Si no conocías a VueJS, aquí te dejo la descripción de su sitio oficial.

Vue (pronounced /vjuː/, like view) is a progressive framework for building user interfaces. Unlike other monolithic frameworks, Vue is designed from the ground up to be incrementally adoptable. The core library is focused on the view layer only, and is very easy to pick up and integrate with other libraries or existing projects. On the other hand, Vue is also perfectly capable of powering sophisticated Single-Page Applications when used in combination with modern tooling and supporting libraries.

Básicamente VueJS, nos brinda otra opción más para tener en cuenta en nuestro patrón MVC, pudiendo ocupar el lugar de la V (View).

Pero, ¿por qué utilizar VueJS?

 

VueJS está diseñado desde cero para ser incrementalmente adaptable, cuenta con una característica llamada Declarative Rendering, que no es más que un sistema de plantillas para representar de forma declarativa datos en el DOM utilizando una sintaxis sencilla.

VueJS también nos proporciona Reactividad, y bueno, en su sitio oficial tienen una excelente comparativa con otras librerías y frameworks, como lo son ReactJS, EmberJS y AngularJS.

Y bien, a lo que estamos aquí, veamos un sencillo ejemplo de lo que nos aporta VueJS, realizando el mundialmente conocido “Hello World”:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <title>Hello World with VueJS!</title>
</head>
<body>
  <div class="container">
    <div class="jumbotron" id="app">
      <h1 class="text-center">Vue JS - Hello World</h1>
      <p class="text-center"></p>
    </div>
  </div>

  <script src="https://unpkg.com/vue@2.0.8/dist/vue.js" charset="utf-8"></script>
</body>
</html>

Como podemos notar, sólo tengo la estructura básica de una página HTML, en la cual hago referencia a Bootstrap y a VueJS desde el CDN que recomiendan en su sitio oficial.

Ahora justo antes de la etiqueta de cierre de body abrimos una nueva etiqueta de script para meter nuestro código de Vue y escribimos lo siguiente.

new Vue({
  el: '#app',
  data: {
    message: 'Hello, VueJS!'
  }
});

Como podemos ver, simplemente estamos creando una nueva instancia de Vue,
y declarando unos valores que recibe el objeto constructor de Vue.
Primero tenemos “el”, que recibe el elemento donde VueJS trabajará, aquí podemos
pasar cualquier tipo de selector CSS valido.
Luego tenemos “data”, el cual es un objeto, donde pasamos los datos que queremos que
se muestren en nuestra vista, aquí únicamente estamos pasando la clave “message” con
el mensaje que queremos mostrar.

Y ahora, si notaron en el código HTML tenemos una etiqueta p vacía,
la modificamos para que quede de la siguiente manera:

<p class="text-center">{{message}}</p>

Quedando nuestro código así:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <title>Hello World with VueJS!</title>
</head>
<body>
  <div class="container">
    <div class="jumbotron" id="app">
      <h1 class="text-center">Vue JS - Hello World</h1>
      <p class="text-center">{{message}}</p>
    </div>
  </div>

  <script src="https://unpkg.com/vue@2.0.8/dist/vue.js" charset="utf-8"></script>
  <script type="text/javascript">
    new Vue({
      el: '#app',
      data: {
        message: 'Hello, VueJS!'
      }
    });
  </script>
</body>
</html>

Ahora, si todo está correcto, podemos visualizar nuestro archivo en el navegador
y veremos algo como esto:
Clase 1 - VueJS
Bien, por ahora es todo, este es la introducción a esta serie de entradas que tendremos sobre este grandioso y potente framework.

Puedes encontrar el código en este repositorio de GitHub.

Si te gustó por favor, no dudes en compartirlo, y dejar tus comentarios.
Saludos.

Scaffolding – Utilizar o no herramientas

Primero que nada, te agradezco a ti que pasas por este abandonado blog. También quisiera aclarar que esto que escribiré acerca del scaffolding es una opinión totalmente personal, apoyada debido a la poca experiencia con la cuento, y que nace de una charla que sostuve con unos colegas, así que realmente me gustaría leer sus comentarios al respecto.

Bien, repasemos de que estamos hablando, el scaffolding es una técnica utilizada por la gran mayoría de frameworks MVC para designar la construcción automática de aplicaciones, basándose en el esquema de la base de datos. Técnica la cual tengo entendido, se volvió popular gracias a Ruby on Rails , y ya que lo menciono, este será el framework designado para los ejemplos. Entonces podemos resumir qué el scaffolding nos permite tener un CRUD rápidamente.

Logo Rails Scaffolding

Logo Rails

Supongamos que estamos desarrollando un blog, actualmente sólo contamos con el modelo Article, y nos topamos con la necesidad de añadir un nuevo modelo para almacenar los comentarios, tendríamos que escribir el siguiente comando:

bin/rails generate model Comment commenter:string body:text article:references

Como resultado del siguiente comando, se generarán cuatro archivos, el primero de ellos será la migración para crear la tabla comments en la base de datos, almacenado dentro de db/migrate/nombreArchivo, cuyo nombre se compone de la siguiente forma timestamp_create_comments.rb Luego podremos encontrar el modelo Comment en app/models/comment.rb. También encontramos los tests del modelo en test/models/comment_test.rb y dentro de test/fixtures/comments.yml se generarán comentarios de prueba para los tests.

Luego de esto debemos generarán un controlador para trabajar con el modelo que acabamos de crear, y aplicar los cambios a la base de datos, lo cual lograríamos con los siguientes comandos.

bin/rails generate controller Comments
bin/rake db:migrate

Si lo sé, con Rails es muy sencillo de llevar estas tareas a cabo. Sin embargo, con el scaffold podríamos realizarlo más sencillo todavía. bastaría con hacer algo como:


bin/rails generate scaffold Comments commenter:string body:text article:references

bin/rake db:migrate

Este comando es igual a crear un modelo, ya que de igual manera creará la migración correspondiente y el modelo con sus atributos, Pero, además va a crear por nosotros el controlador con los métodos correspondientes (index, show, new, create, edit, update y destroy) y los archivos de pruebas. Vaya que es más sencillo ¿no lo creen?

Realmente sí, pero en lo personal, y aquí viene mi opinión, esto no sirve si no se conoce como funciona el framework. Pienso que antes de utilizar este tipo de magia herramientas, se debe conocer la estructura de lo que estás utilizando, conocer sus bases, hacerlo manual, para que, en el caso de que el scaffolding llegué a hacer algo que no esperabas, puedas solventarlo sin la necesidad de entrar en pánico.

Bien, creo que por ahora termino así, me gustaría mucho leer sus comentarios al respecto. Saludos.

Creando aplicaciones web con Sinatra y Ruby: más allá de los Rieles.

Hola y bienvenido. En esta entrada voy a dar una breve introducción a Sinatra y Ruby, el cual es posiblemente el segundo framework más utilizado del lenguaje.

Sinatra y Ruby

En la actualidad, cuando se escucha o se lee acerca del lenguaje de programación Ruby, suele interpretarse erróneamente como Ruby on Rails, esto gracias a la falta de conocimiento de muchos pseudo-programadores que piensan que son una misma cosa. Así que definamos conceptos, Rails  es un marco de trabajo (framework para los puristas), del lenguaje Ruby, el cual nos permite desarrollar aplicaciones web. Fue usado en sus inicios por Twitter, así que debe ser bueno ¿cierto?

Rails nos brinda todo para que podamos desarrollar aplicaciones robustas, proporcionándonos desde un inicio una estructura siguiendo la arquitectura MVC (Modelo-Vista-Controlador), y muchas otras cosas, pueden visitar su documentación si es que aún no lo conocían para ver más detalladamente sus bondades, yo aquí los espero…

¿Listos? Bien, continuemos…a estas alturas podrás estarte preguntando, ¿por qué utilizar otro framework cuando Rails nos proporciona tanto? La respuesta es sencilla, Porque Rails nos proporciona tanto. ¿No quedó claro? Dejame explicarte un poco más.

Sinatra y Ruby

Sinatra se define a si mismo como un DSL para crear aplicaciones web en Ruby con un mínimo esfuerzo. Esto lo logra quitándonos características las cuales según nuestro proyecto, no necesitamos, pero es mejor que veamos código cierto.

Lo primero que debemos hacer es instalar la gema de Sinatra.

Sinatra y RubyUna vez que termina de instalarse, vamos a ver lo sencillo que es de utilizar,

Cuando utilizamos Rails, debemos generar un proyecto, hacer un par de configuraciones y ponernos a codificar, con Sinatra y Ruby nos olvidamos de esto y vamos directo al código, en mi caso crearé un archivo llamado test-sinatra.rb.

Lo primero que haremos para probar la sencillez y poder de Sinatra es crear una ruta.

# test-sinatra.rb
require 'sinatra'

get '/' do
  '&amp;lt;h1&amp;gt;Mi primer Ruta definida con Sinatra :D!&amp;lt;h1&amp;gt;'
end
Sinatra y Ruby

Sinatra y Ruby

Y al ejecutar esto desde la consola, debemos tener una salida similar a esto:
Sinatra y RubyLo cual significa que nuestro servidor Sinatra está funcionando. Ahora, si desde tu navegador accedes a http://localhost:4567/ deberías tener una salida similar a esta:
Sencillo cierto, en Sinatra, una ruta no es más que un método HTTP
junto a un patrón de coincidencia de URL, donde cada ruta debe estar asociada a su bloque.
Por lo tanto, las siguientes rutas son validas:

get '/' do
  # bloque de código
end

post '/' do
  # bloque de código
end

put '/' do
  # bloque de código
end

patch '/' do
  # bloque de código
end

delete '/' do
  # bloque de código
end

options '/' do
  # bloque de código
end

link '/' do
  # bloque de código
end

unlink '/' do
  # bloque de código
end

Un punto que hay que cuidar con Sinatra, es que las rutas coinciden en el orden en que
son definidas, esto quiere decir que la primer ruta que coincida con la solicitud
del cliente es la que será invocada.

De igual forma, podemos tener rutas dinámicas, las cuales nos permiten definir parámetros
con nombre, los cuales serán accesibles desde el hash params.

get '/hola/:nombre' do
 # http://localhost:4567/hola/Mushr00m
 # params['nombre'] es 'Mushr00m'
 "<h1>Hola, #{params['nombre']}!</h1>"
end

Ahora, para realizar la prueba de esto, debemos detener nuestro
servidor y volver a ejecutarlo. Al hacer esto podemos probarlo ingresando a
http://localhost:4567/hola/:nombre dónde, debemos sustituir :nombre, con
la cadena que deseemos. Debes tener una salida similar a:

Sinatra y Ruby

Nota como en la URL sustituí :name por Programadores, y esto es lo que imprimió el mensaje,
genial ¿cierto? 😀

Eso no es todo, Sinatra nos permite crear las rutas de distintas maneras,
utilizando parámetros de bloque, condiciones, expresiones regulares, además de otras
peculiares formas que Sinatra nos permite.

Como espero poder haber mostrado, Sinatra es una muy buena opción para
crear aplicaciones web rápidamente y de una forma sencilla. Además de esto,
podemos servir archivos de plantillas, les recomiendo lean la documentación oficial,
o si gustan, escribiré otra entrada para profundizar un poco más en este excelente framework.

Y bien, Sinatra es una excelente opción y alternativa a Rails, como framework para desarrollar
aplicaciones web utilizando Ruby, y no se crean, con Sinatra podemos tener las caracteristicas
que nos brinda Rails con a penas un poco de esfuerzo extra.

Espero te sirva esta entrada, cualquier comentario, sugerencia o punto de mejora que encuentres
te estaré agradecido si lo dejas en los comentarios.
Saludos 😀

Ejercicios de Programación: Calculemos el Factorial de un número

Calculemos el factorial de un número

Debido a qué me encuentro cansado después de un largo día en el trabajo, será una entrada breve, pero siempre con el objetivo de compartir algo por día, para así también me sirva como repaso, en esta ocasión, simplemente voy a mostrarles algunas maneras que conozco para calcular el Factorial de un número, claro, utilizando el lenguaje Python.

Nota: Para poder realizar la solución de un problema, primero que nada debemos entenderlo, en este caso, el problema es obtener el factorial de un número cualquiera, a estas alturas espero sepas como se calcula el factorial de un número, pero si no es así, déjame mostrarte. El factorial de un número, se calcula multiplicando este número por todos los números anteriores a él hasta el 1. Esto es:

6! = 6 * 5 * 4 * 3 * 2 * 1, lo que nos da como resultado 720.

Sabiendo esto, veamos que opciones tenemos con Python para llevar a cabo esta operación.

Nota 2: Para simpleza de la entrada, todas las formas que veremos, las probaremos calculando el factorial del número 6, obviamente el procedimiento será el mismo para cualquier número.

Haciéndolo de forma “sucia”

print(6 * 5 * 4 * 3 * 2 * 1)

Utilizando la función built-in de Python

from math import factorial
factorial(5)

Utilizando un ciclo “while”

def fact_1(n):
    factorial_total = 1
    while n > 1:
        factorial_total *= n
        n -= 1
    return factorial_total

Utilizando recursividad

def fact_recursividad(n):
    if n > 1:
        return n * fact_recursividad(n - 1)
    else:
        return 1

Utilizando recursividad y el operador ternario 😀

def fact_ternario(n):
    return n * fact_ternario(n - 1) if n > 1 else 1

EDICIÓN (24/04/2016):
Gracias a la observación de Daniel en los comentarios, añado la forma elemental para
realizar el procedimiento.
Saludos.

def fact(n):
    if n == 0:
        r = 1
    else:
        r = n * fact(n - 1)
    return r

Ahora, si ejecutas el código podrás notar que todos devuelven el mismo resultado para cualquier número, pero podemos observar que tenemos diferentes maneras de programar la solución.

Factorial: Resultados

 

 

 

 

Puedes encontrar el código utilizado en esta entrada, comentario de mejor foma en el siguiente repositorio de Github https://github.com/TheMushrr00m/factorial-python 😀

Si tienes alguna duda, no dudes en dejar tu comentario, si te parecio interesante o tienes algún punto en el que piensas que podría mejorar algo, por favor no dudes también en dejar tu comentario, de igual forma comparte la entrada para que pueda llegar a alguien a quien le pueda resultar útil. Saludos.

Valores Truthy y Falsy

Hola a todos, hace tiempo que no escribo en el blog, pero pienso que es buen momento para retomarlo, y que mejor que hacerlo sobre algo que me llamó la atención estos días, los valores Truthy y Falsy.

Para quienes me conocen, no es secreto que mi lenguaje favorito, aquél con el que comencé en la programación, y con el que me gusta hacerlo todo siempre que se me permite es Python.

Pero últimamente he estado trabajando mucho con Javascript, en especial, ganando experiencia con su nueva especificación ECMAscript 2015,.

Algo que me llamó la atención, fue leer acerca de la expresión que establece el titulo de esta entrada, los valores Truthy y Falsy. Todos conocemos que en los lenguajes de programación, tenemos los valores “booleanos” True y False, así que se podrán estar preguntar, ¿de qué rayos está hablando? Bien, en palabras fáciles de digerir, podemos decir que cada elemento del lenguaje tiene un valor booleano intrinsico-primitivo.

Valores Truthy y Falsy

Valores Truthy y Falsy

 

 

 

Teniendo primeramente los valores que ya todos conocemos True y False, pertenecientes a la clase bool, nos encontramos con lo siguiente:

Valores Falsy

None  # Valor None perteneciente a la clase NoneType.
0  # Valor 0 perteneciente a la clase int.
""  # Valor cadena vacía perteneciente a la clase str.
[]  # Valor lista vacía perteneciente a la clase list.
()  # Valor tupla vacía perteneciente a la clase tuple.
{}  # Valor diccionario vació perteneciente a la clase dict.

Así que no te convence eso…puedes probarlo por ti mismo, en el intérprete de Python prueba utilizando bool() para evaluar cada uno de esos datos, verás que todos evaluarán como False…¿ahora me crees?

Dicho esto, cualquier otro valor, es considerado un valor Truthy . Sencillo ¿cierto?

 

Valores Truthy y Falsy

 

 

 

 

 

 

 

 

En el caso de JS no existe mucha diferencia con respecto a Python,

Como valores Falsy (además de false)  tenemos:

0  // (cero) de la clase Number.
NaN  // (Not a Number) de la clase Number.
""  // (cadena vacía) de la clase String.
null  // de la clase Object.
undefined  // de la clase Undefined.

Valores Truthy:

En JS al igual que Python, cualquier otro valor diferente a los anteriores, es considerado como verdadero o Truthy además de algunos valores que pueden resultar curiosos como:

Infinity  // Number(Al igual que NaN, son números especiales de JS)
"0" , "true", "false"  // String
function(){}  // Function
[]  // Object (Array)
{}  // Object

Y bien, es todo por ahora, mi nuevo propósito es publicar una entrada por día,
por más pequeña que sea, para ganar ese habito, y poder yo mismo mejorar en la programación,
y como persona, puesto que una vez me dijeron qué cada día se aprende algo nuevo, y que si
esto no se cumplía, es porque estaba desaprovechando mi tiempo.

Así que es todo por hoy, espero les sirva está información, si tienen algún comentario no
duden en escribirlo, y si les parece interesante el articulo, sería un gran gesto que lo compartieras.

Si quieren saber un poco más sobre esto, aplicado a JS,
una buena referencia es el siguiente articulo:

Saludos 😀

“Visual Studio Code” – Editor Multiplataforma por parte de Microsoft

Buen día a todos los lectores del blog, déjenme felicitarlos ya que tienen buen gusto 😀

En esta entrada, quiero dar mi punto de vista y no tanto hacer eco de esta noticia, que desde el día de ayer a estado en boca de todos los que nos desenvolvemos en las actividades cotidianas de Internet y la informática.

Hablo de la noticia que dieron los chicos de Microsoft el día de ayer en su conferencia BUILD 2015, acerca de su nuevo editor de código Visual Studio Code el cual es multi-plataforma, esto es, que puede correr bajo Windows, GNU/Linux y OS X.

Visual Studio Code

Visual Studio Code – Portada del Sitio

En lo personal, luce exactamente igual a editores que ya tienen un tiempo entre nosotros  y que a mi me gusta mucho utilizar, como Brackets, Sublime Text o Atom.

Creo que no es novedad comentar que soy un fiel usuario de Arch Linux y esto no se que tan beneficioso pueda ser para nosotros los usuarios de sistemas GNU/Linux.

Llevamos mucho tiempo escuchando noticias acerca del espionaje y de la falta de privacidad que nos proporcionan las grandes empresas de Internet así es, Microsoft pertenece a estas empresas, .

Si son observadores, en la imagen que puse arriba estoy mostrando la portada del sitio oficial de Visual Studio Code, y como podrán notar en la parte justo arriba de donde se muestra el vídeo de presentación del editor, vemos el siguiente mensaje…

By installing Visual Studio Code, you agree to the terms and data collection described here

No lo sé, pero no confío en estas recopilaciones de datos por parte de Microsoft.será que en realidad solo les interesa lo que suceda en torno a su editor…

Pero como les comenté al inicio de esta entrada, únicamente quería dar una opinión acerca de Visual Studio Code, que por lo que pude observar es que ofrece características necesarias para el día a día de nosotros los desarrolladores, ademas de que es compatible con muchos lenguajes de programación.

Pero les comento que lo probé en la versión de Windows, (Si, tengo una partición con Windows ya que mi trabajo como administrador SAP me hace necesitarlo, así como la Universidad, ya que, aunque le mostré al profesor que podía desarrollar los programas que me solicitaban en el lenguaje C# utilizando Xamarin, este me “pidió” obligo a tener que utilizar Visual Studio) y como no podía ser de otra forma, el aspecto visual es excelente, pero cuando lo probé en mi partición y sistema principal “Arch“, su integración con KDE no fue la mejor que podríamos esperar, por ejemplo, la barra de menú no se visualizaba, lo sé, poca cosa, pero es algo que debo comentarles.

Además de que por lo que noté solo se encuentra en versión 64 bits, corrijanme por favor si estoy equivocado, y debemos recordar que es software privativo.

Y tu… ¿Ya probaste Visual Studio Code?

Si desean probar este editor u obtener un poco mas de información, pueden hacerlo visitando el sitio oficial de visual studio code.

Y eso es todo por hoy, espero sus comentarios al respecto, sus experiencias o lo que quieran decirme.

Saludos.

Estructura de Datos – Listas Ligadas (Enlazadas) en Lenguaje C

Hola a todos los que lleguen a leer esta entrada.

En esta ocasión les dejo un video-tutorial que tuve que realizar en mi materia de Estructura de Datos, en el cual, debía mostrar como implementar las listas ligadas en el lenguaje de Programación C.

Aclaró que tal vez ustedes puedan tener otra forma para realizarlo, o al ver el vídeo se les ocurra alguna manera mas eficiente, si es así, quedo abierto a leer sus comentarios al respecto.

También les dejo la presentación que utilicé en el vídeo, se que es algo simple pero intenté explicar todo durante el vídeo, en fin, para algo podría servirles.

Listas Ligadas Simples (Presentación)

Y por si no fuera suficiente para ustedes, también les dejo el código fuente que realicé y se muestra en el vídeo, les recomiendo utilicen el IDE que yo utilizo, el cual es “Code Blocks“, a mi parecer es la mejor opción para escribir código C, claro, esto si no lo hacen desde algún sistema *nix, si es así, les recomiendo que lo hagan a lo hardcore desde terminal con Nano, Vim o Emacs. en Windows.

Code Blocks Logo

Si se animaron a probarlo, pueden descargarlo directamente desde su Sitio Web.

Y bien, espero sus comentarios sobre el vídeo, claro, siempre y cuando no sean acerca de la edición del vídeo, o de la forma en que hablo, les comento que lo realicé 2 horas antes de ir a la Universidad, estaba desvelado y no estaba 100% concentrado.

Era broma, si quieren comentar lo que sea no duden en hacerlo.

Saludos.

Curso de Programación Ruby – (Presentación)

Curso de Programación Ruby.

Presentación del Curso

Curso de Programación Ruby

Curso de Ruby

Este curso pretendo que sea ameno y didáctico, y espero que sirva para todas aquellas personas que estén interesadas a introducirse en el mundo del desarrollo de software a poder cumplir este objetivo, y que pronto comiencen a desarrollar sus propias aplicaciones.

Este curso será utilizando el lenguaje de programación Ruby . Esta dedicado para cualquier persona interesada en el mundo de la programación, desde chicos a grandes, sin importar si ya tienen experiencia con algún otro lenguaje.

Bien, sin mas por el momento los dejo con la presentación del Curso.

El objetivo es finalizar el curso en menos de un mes, los invito a que estén pendientes del blog y que se suscriban a mis redes para que se enteren al momento de que se publiquen las demas entradas del curso. 😀

Nueva versión del navegador “Firefox” nos permite desarrollar aplicaciones para “Firefox OS” fácilmente.

No cabe duda que últimamente todas las noticias que están saliendo entorno a “Firefox OS” son alentadoras, y nos demuestran, que este proyecto va por un excelente camino. Y como la gente de Mozilla nos tiene acostumbrados, la nueva versión de su navegador el mejor en mi opinión Firefox, así como la que ya tenemos disponible en su versión de prueba disponible en Firefox Nightly (versión de Firefox que prueba las funcionalidades antes de su lanzamiento en la versión oficial) nos permitirá desarrollar aplicaciones para Firefox OS directamente desde el navegador, algo que al leer me emociono mucho. 😀

El Web IDE como fue llamado, nos permitirá conectar dispositivos vía “USB” para desarrollar aplicaciones usando las características típicas de los móviles modernos (acelerómetro, brújula, etc.)

La idea de incluir un entorno de desarrollo integrado (IDE) para Firefox OS en las próximas versiones del navegador Firefox tiene sentido, ya que dejará de ser necesario instalar software adicional y facilitará el acceso a los programadores que quieran aventurarse en el mundo HTML5 y JS, sin necesidad de que tengan que aprender el uso de un ambiente de programación nuevo. El WebIDE estará disponible en la versión 31 del navegador Firefox, y esperan que en el futuro sea posible crear aplicaciones no solo para Firefox OS, sino también para iOS y Android.

Una vez creada la aplicación, podremos simular su funcionamiento desde el navegador, ejecutando un sistema de simulación incluido dentro del propio Firefox. En Mozilla Hacks  tienes más información sobre esta forma de programar aplicaciones, donde informan que ya hay varias plantillas disponibles.

También les dejo el video que la gente de Mozilla que publicó, donde nos dan una pequeña introducción:

Eso es todo por ahora, pero antes de irme, me gustaría saber que opinan de este gran proyecto de Mozilla, dejen sus comentarios.

Saludos.