Básicamente WebVR es un estándar abierto que hace posible experimentar con Realidad Virtual desde el navegador web. para experimentar con web vr necesitas dos cosas: un dispositivo de vr (puede ser un celular con un cardboard, o un dispositivo mas complejo) y un navegador compatible.
Como muchos de estos dispositivos son algo costosos la forma mas fácil de utilizar web vr es con un google cardboard. Simplemente coloque su teléfono en la caja y ya está listo. También puede utilizar su teléfono con auriculares más avanzados como los mencionados anteriormente (Samsung Gear VR, Google Daydream, entre otros).
En algunos sitios, se puede utilizar la computadora o teléfono sin auriculares. No podrás ver en 3D o interactuar de forma totalmente completa en la mayoría de los mundos VR, pero se puede ver alrededor en 360 grados.
Rust es un lenguaje de programación compilado, de propósito general y multiparadigma que está siendo desarrollado por Mozilla y ha sido diseñado para ser ‘un lenguaje seguro, concurrente y práctico. soporta programación funcional, por procedimientos, imperativa y orientada a objetos. Rust se enfoca principalmente en seguridad, velocidad y concurrencia.
El lenguaje surgió de un proyecto personal desarrollado por Graydon Hoare (trabajador de Mozilla), quién empezó a trabajar en él en 2006 y Mozilla se involucró en este proyecto en 2009, dandose a conocer oficialmente en 2010.
El objetivo de Rust es ser un buen lenguaje para la creación de grandes programas del lado del cliente y del servidor que se ejecuten en Internet. Esto ha llevado a un conjunto de características con un énfasis en la seguridad, el control de distribución de la memoria y la concurrencia.
Rust también implementa ‘abstracciones con cero costo’, abstracciones que se sienten como las de un lenguaje de alto nivel. Aun así, Rust permite control preciso tal y como un lenguaje de bajo nivel lo haría.
un ejemplo de un programa que muestra la frase “Hola Mundo!” en Rust sería:
fn main() {
println("Hola Mundo!");
}
La sintaxis de Rust es similar a la de C y C++, con bloques de código delimitados por llaves y estructuras de control de flujo tales como if, else, do, while y for
El concepto principal que hace único a Rust es llamado “pertenencia” (“ownership”). por ejemplo:
fn main() {
let mut x = vec!["Hola", "mundo"];
}
Según este código:
El programa crea un una variable llamada x.
El valor de esta variable es Vec<T>, un “vector”, que creamos a través de una macro definida en la biblioteca estandar.
Las macros son invocadas con un !
Las macros pueden hacer cosas más complejas que solo llamadas a funciones, por tal razon son visualmente distintas.
La definición mut es para hacer x mutable: En Rust las variables son inmutables por defecto.
Agregando otra línea:
fn main() {
let mut x = vec!["Hola", "mundo"];
let y = &x[0];
}
Se agregó la variable como una “referencia” a el primer elemento de el vector
Las referencias en Rust son similares a los punteros en otros lenguajes
Las referencias interactuan con el sistema de pertenencia a través de el “préstamo” (“borrowing”), ellas toman prestado a lo que apuntan, en vez de adueñarse de ello.
fn main() {
let mut x = vec!["Hola", "mundo"];
let y = &x[0];
x.push("foo");
}
Push es un metodo en los vectores que agrega un elemento al final del vector.
Esta ultima linea x.push(“foo”) causará un error debido a que si hacemos la variable mutable no podemos llamar a push ya que tenemos una referencia a un elemento del vector y.
para resolver este problema hay dos opciones:
clonar el valor de x en vez de una referencia
fn main() {
let mut x = vec!["Hola", "mundo"];
let y = x[0].clone();
x.push("foo");
}
Si necesitamos una referencia, hay que asegurarse que la referencia salga de ámbito antes que tratemos de hacer la mutación:
fn main() {
let mut x = vec!["Hola", "mundo"];
{
let y = &x[0];
}
x.push("foo");
}
Con el par adicional de llaves hemos creado un ámbito interno. y saldrá de ámbito antes que llamemos a push(), entonces no hay problema. Este concepto de pertenencia no es solo bueno para prevenir punteros colgantes, sino un conjunto entero de problemas, como invalidación de iteradores, concurrencia y más.
Existen muchas mas cosas por conocer y descubrir en Rust, por lo cual esperamos que esta introducción sirva para despertar la curiosidad sobre este lenguaje de programación. Referencias:
Los días 10 de Julio y 17 de Julio del 2016 se impartieron los talleres de introducción a Java y Android en la Universidad del Valle a estudiantes de primer y segundo año de Ingeniería en sistemas de dicha alma mater.
Dentro de los temas impartidos están:
Primera sesión
Introducción a Java
Programación orientada a objetos
Encapsulación, abstracción, herencia y polimorfismo
Introducción a Android (IDE, SDK, ADV, etc)
Desarrollar una aplicación Android “Hola Mundo”
Layouts, Activities, Controles básicos
Segunda sesión
Crear e implementar estilos en Android
Implementar navegación en una aplicación Android
Implementar aplicaciones para múltiples pantallas
Implementar los componentes disponibles en un app Android
Si quieres ver la presentación y descargar los ejemplos puedes hacerlo de este repositorio en Github:
Para instalar Raspbian se pueden necesitar los siguientes accesorios:
Cable de poder como el de los celulares para alimentar el Raspberry pi (Necesario para pasarle energía)
Adaptador de HDMI a VGA (opcional en caso que tengas un monitor VGA)
Cable HDMI (opcional en caso que tengas un monitor HDMI)
Una Tarjeta SD (Necesario, aquí se instala el Sistema Operativo)
Raspberry Pi
Teclado
Mouse
Lo primero que haremos será ir a la página de raspbery pi y descargar la imágen que queramos utilizar. En este caso probaremos con Raspbian que es una versión reducida de Debian para el raspberry pi. (https://www.raspberrypi.org/downloads/)
Hay otras imágenes disponibles como:
Noobs
Ubuntu Mate
Snappy ubuntu Core
Windows 10 IOT Core
OSMC
LIBRELECT
PINET
RISC OS
entre otros
Instalarlo desde Windows.
Inserte la Tarjeta SD en el lector de SD y verifique que tiene asignada una letra por ejemplo D:, G:, etc. Aquí debería aparecer los archivos de su tarjeta SD.
Ejecute el Win32DiskImager como administrador seleccionando click derecho ejecutar como administrador
Seleccione la imágen que ha descargado de Raspbian y presione el botón write. Tenga cuidado en donde va a descomprimirla pues podría dañar los datos de su disco duro si no seleccionó la ruta adecuada de la tarjeta SD.
Haga click en escribir y espere a que el proceso esté completo
Salga del programa y ejecte la tarjeta SD
Una vez creada la imágen:
Ahora que ya tenemos la imágen montada en la tarjeta SD podemos proceder a iniciar el raspberry pi. Para este ejemplo mostraremos la interfaz con un monitor VGA por lo cual utilizamos el adaptador VGA – HDMI. Tambien conectaremos un mouse y un teclado.
Conectamos el cable de energía y procedemos a encendelo. Veremos que inicia la interfaz de Raspbian en la cual podemos interactuar y comenzar a trabajar con el Raspberry pi.
Posibles usos para un Raspberry pi:
Los usos que le demos al raspberry pueden ser diversos, todo depende de la imaginación del usuario pero aquí podrían estar algunos usos:
Crear un servidor NodeJS
Instalar MongoDB
Crear un cliente torrent
controlarlo remotamente mediante VNC
crear un mini servidor web
Un punto de acceso inalambrico (necesitarías un adaptador wifi si no es la versión 3)
Pantalla táctil para el carro
una consola retro
Espero te halla servido esta pequeña introducción y cuéntanos en los comentarios ¿que te gustaría que hagamos con un raspberry pi? ¿que proyectos se te ocurren?, sugerencias o inquietudes al respecto.
El evento se llevó a cabo el día 16 de junio del 2016 en la universidad nacional de ingeniería en la ciudad de Managua, Nicaragua. Hubieron diferentes ponencias, charlas y talleres, relacionados al software libre y a los proyectos de la comunidad Mozilla.
Las actividades fueron un éxito y hubo gran afluencia de los invitados, mas de 500 personas entre docentes, estudiantes y entusiastas de la tecnología asistieron a las charlas y los talleres en diferentes horarios.
Dentro de los temas que se impartieron estaban:
Proyecto Mozilla Historia e impacto en la web.
Conoce Firefox, Tips de navegación
¿Qué hace Mozilla por la Neutralidad de la red?
Mozilla Learning Network
Proyecto Womoz (Mozilla Women)
Introducción a Rust
Desarrollo de Juegos con LIBGDX
IOT (Internet of things) con arduino
Introducción a Ionic framework
Taller de Node Js
Taller de wordpress básico
Makey Makey, convirtiendo objetos en interfaces físicas
Taller de Desarrollo apps híbridas con Ionic
En el taller y charla de Libgdx se mostró un ejemplo sencillo sobre como crear un juego para Android y también se mostró un avance del juego de Zuchiga GDX que es el proyecto que se está desarrollando con esta librería.
Aquí algunas entrevistas que se realizaron durante el evento:
Si participaste en este evento o si deseas conocer mas sobre las actividades de Mozilla centroamerica dejanos tus comentarios o sugerencias para seguir mejorando.