Webvr ¿que es y como funciona?

Webvr ¿que es y como funciona?

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.

¿Que dispositivos pueden ser útiles?

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.

(más…)

El lenguaje de programación Rust

El lenguaje de programación Rust

Rust_programming_language_black_logo.svg

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:

https://www.gitbook.com/book/goyox86/el-libro-de-rust/details
https://es.wikipedia.org/wiki/Rust_(lenguaje_de_programaci%C3%B3n)
https://www.rust-lang.org/en-US/

 

 

 

Taller Android Universidad del Valle

Taller Android Universidad del Valle

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:

GitHub_Logo

https://github.com/daviddagb2/talleres-android

Aquí algunas Imágenes del evento:

Cuéntanos que sugerencias darías con respecto al curso o que temas te gustaría que se impartiéramos

Instalar Raspbian en Raspberry PI

Instalar Raspbian en Raspberry PI

Tengo un Raspberry pi 2 Model B, Aunque ya salio el Raspberry pi 3, la instalación debería ser de manera similar.

 

En la página de Raspberry pi podemos encontrar diferentes modelos y accesorios: https://www.raspberrypi.org/products/

3Modelos

 

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/)

2

Hay otras imágenes disponibles como:

  • Noobs
  • Ubuntu Mate
  • Snappy ubuntu Core
  • Windows 10 IOT Core
  • OSMC
  • LIBRELECT
  • PINET
  • RISC OS
  • entre otros

third party OS
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.
  • Puede también utilizar un adapador de tarjeta SD.
  • Descargue la herramienta Win32DiskImager de sourceforge como un archivo winzip y extraigalo en alguna carpeta. (http://sourceforge.net/projects/win32diskimager/)

disimager

  • 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.

Resumen primer encuentro Mozilla Centroamerica

Resumen primer encuentro Mozilla Centroamerica

Primer encuentro Mozilla Centroamérica

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:

https://www.facebook.com/926511660753495/videos/1076778169060176/

Para más información sobre el evento visita el sitio web oficial de este año: http://encuentro.mozillanicaragua.org/

Si deseas participar e involucrarte en la comunidad puedes usar el formulario del sitio web:

http://encuentro.mozillanicaragua.org/participa/

Si quieres conocer mas puedes visitar los siguientes enlaces:

Si participaste en este evento o si deseas conocer mas sobre las actividades de Mozilla centroamerica dejanos tus comentarios o sugerencias para seguir mejorando.