#Opinión – El poder de las comunidades técnicas: Gracias }:)

Hola !

El post de hoy es un gran GRACIAS a la excelente comunidad técnica de la que soy parte.

Thanks Technical Communities

Comienzo con un poco de contexto

  • Cuando llegué a Canadá y empecé con el podcast (link), la verdad es que no esperaba que tuviese mucho éxito. En mi caso, no mido esto por las escuchas de cada episodio, sino más bien por el feedback de la gente. Por ahora es genial !
  • Entre este feedback, hay gente que además hace peticiones o sugiere temas. Hace unos días, alguien (lo mantendré anónimo), me preguntó si hablaría en algún momento de DotNetCore y de PowerShell en linux.
  • Le pregunté si quería participar con esos temas, y me respondió que No, que no tenía el nivel. Y aquí comenzó todo

Y ahora el timeline de los eventos

  • Ayer por la mañana pongo un tweet preguntando si alguien estaba interesado en hablar de estos temas

  • Poco después, Jorge Cupi (@JorgeCupi) de Ecuador me pone en contacto con JuanK Ruiz (@JuanKRuiz) de Colombia. Un detalle ambos trabajan para Microsoft.

  • JuanK agrega al thread a un par de cracks de las comunidades Julio Avellaneda (@julitogtu), Nicolas Herrera (@nicolocodev) y Matias Quaranta (@ealsur)

  • Minutos después he coordinado con Julio Avellaneda (@julitogtu) y Nicolas Herrera (@nicolocodev) para grabar un podcast la semana que viene !
  • Y como bonus, Matias Quaranta (@ealsur) me pone al tanto de una iniciativa para las comunidades técnicas de ASP.Net y .Net en general que está genial !!! Saldrá a la luz tal vez, la semana que viene y pinta genial !!!
  • Así que hoy, después de correr un par de kilómetros, terminé el ciclo con un GRACIAS

Saludos @ Toronto

El Bruno

References

#Hololens – Some APIs will work, other no, and there is no easy way to find it :S

Hello!

It is time to begin to share some experiences developing for Hololens. This post is related to UWP Apps, general base for all devices in Windows 10 family.

While have a base common of features in all the devices, for some features is a good practice to validate if the functionalities are implemented or not in each type of device.

As well, according to the article [Dynamically detecting features with API contracts (10 by 10)], the right way to do this is using the ApiInformation class. The example shared bu the Windows Dev Center team is very easy to read and understand:

using Windows.Foundation.Metadata;

if (ApiInformation.IsTypePresent(“Windows.Media.Playlists.Playlist”))
{
await myAwesomePlaylist.SaveAsAsync( … );
}

The code is self explanatory, if we can use the APIs of Playlist, we have everything ready to go on. In the Hololens scenario, this works very well. Some features like Print or Share, that are not directly available on the platform.
However, we must be careful here. In example: What happens if we want to access the camera from the Hololens and use the CameraCaptureUI class? This class we have an option to see in time real the feed of the camera and take a photo on this.

Note: I know is an inconsistency to use this in the Hololens. Camera will always show what they are seeing. However as an example for the post it comes great!

So, if we use CameraCaptureUI we’ll have the following steps in Hololens:

  • The API CameraCaptureUI will be returned as available in Hololens
  • When we use it, Windows 10 will suggests us to download an app from the Store for this
  • What?

Here is a live sample:

2016 08 23 Hololens CameraCaptureUi

Using this sample code:

Clipboard02

So, for this scenario, validate the availability of an API is not working. Here comes the time of go for an ungly solution

Use AnalyticsInfo.VersionInfo.DeviceFamily to see the type of device where the app is running. In the case of the Hololens this property returns “Windows.Holographic”.

This solution works. And I know, I add a BIG NOTE: As soon as UWP has a better way to validate this type of scenarios, this feature and evidence must be eliminated!

Clipboard06

A kitten and 2 unicorns less thanks to 5 lines of code! Sorry about that😦

Greetings @ Toronto

El Bruno

References

#Hololens – Validando APIs que funcionan pero que no funcionan :S

Hola !

Es momento de comenzar a compartir algunas experiencias desarrollando para Hololens. Este caso es relacionado con UWP Apps, la base general de apps para todos los devices Windows 10.

Si bien tenemos una base común de features en todos los devices, para algunas cosas es recomendable validar si las funcionalidades están implementadas o no en un tipo especial de dispositivo.

Pues bien, según el artículo [Dynamically detecting features with API contracts (10 by 10)], la forma correcta de hacer esto es utilizando la clase ApiInformation. El ejemplo que nos comparte el equipo de Windows Dev Center es el siguiente:

using Windows.Foundation.Metadata;

if (ApiInformation.IsTypePresent(“Windows.Media.Playlists.Playlist”))
{
await myAwesomePlaylist.SaveAsAsync( … );
}

El código es bastante auto explicativo, si podemos utilizar las APIs de Playlist, pues … tenemos todo listo para seguir. En el caso de las Hololens, esto funciona muy bien, con opciones como Print o Share, que directamente no están disponibles en la plataforma.

Sin embargo, no es oro todo lo que reluce. ¿Qué sucede si queremos acceder a la cámara de las Hololens y utilizar la clase CameraCaptureUI? Esta clase nos brinda una opción para poder ver en tiempo real el feed de la cámara y sacar una foto sobre el mismo.

Aclaración: Es una incoherencia usar esto en las Hololens, lo sé. La cámara mostrará siempre lo que estemos viendo. Sin embargo como ejemplo para el post me viene genial!

Pues bien, cuando utilizamos CameraCaptureUI tenemos el siguiente funcionamiento en las Hololens:

  • La API CameraCaptureUI está disponible en Hololens
  • Al momento de utilizarla, Windows 10 nos sugiere la opción de descargar una app de la Store para esto
  • What ???

Aquí en funcionamiento:

2016 08 23 Hololens CameraCaptureUi

Sobre este código:

Clipboard02

O sea que, en este caso, validar la disponibilidad de una API no sirve. Llega el momento de utilizar una mala práctica

Utilizar AnalyticsInfo.VersionInfo.DeviceFamily para ver el tipo de dispositivo en el que se está corriendo la App. En el caso de las Hololens esta propiedad retorna “Windows.Holographic“.

Esta solución es una de las posibles, y por ahora la que funciona. Eso sí, apuntando que en cuanto UWP posea una mejor forma de validar este tipo de escenarios, esta función y  sus pruebas deben ser eliminadas!

Clipboard06

Un gatito y 2 unicornios menos gracias a 5 líneas de código !

Saludos @ Toronto

El Bruno

References

#Hololens – Device Portal basic features for developers

Hello!

Yesterday I wrote a post with the 2 main options to turn off or restart the Hololens. In a incredible mistake, I forgot to share some options in the Hololens Device Portal. As a memory reminder:

Device Portal is a feature available for all Windows 10 versions and it can be used once we enabled the  Developer mode.

According to the MSDN documentation these are the features for each Windows 10 flavor:

 

DEVICE FAMILY ON BY DEFAULT? HTTP HTTPS USB
HoloLens Yes, in Dev Mode 80 (default) 443 (default) localhost:10080
IoT Yes, in Dev Mode 8080 Enable via regkey N/A
Xbox Enable inside Dev Mode Disabled 11443 N/A
Desktop Enable inside Dev Mode Random > 50,000 (xx080) Random > 50,000 (xx443) N/A
Phone Enable inside Dev Mode 80 443 localhost:10080

In the Hololens device we found some very interesting features such as the ability to see real-time tracking of the device

2016 08 22 Hololens Tracking Debug Mode

A real time streaming of the device camera. And also, apps sounds, microphone and the holograms.

Clipboard01

We can also, make some network configuration, see the debugging options and as a complement to yesterday’s post we can shutdown or reboot the device from the web portal.

Clipboard02

Greetings @ Toronto

El Bruno

References

#Hololens – Revision del Device Portal

Hola !

Ayer comenté 2 opciones para apagar o reiniciar las Hololens. En realidad me quedó una por comentar que es la que nos dá el Device Portal. El Device Portal es una feature que tienen todas las versiones de Windows 10 y que podemos utilizar una vez activado el modo Developer.

Segun la documentación oficial de MSDN, estas son las especificacones propias para cada de devices:

Device family On by default? HTTP HTTPS USB
HoloLens Yes, in Dev Mode 80 (default) 443 (default) localhost:10080
IoT Yes, in Dev Mode 8080 Enable via regkey N/A
Xbox Enable inside Dev Mode Disabled 11443 N/A
Desktop Enable inside Dev Mode Random > 50,000 (xx080) Random > 50,000 (xx443) N/A
Phone Enable inside Dev Mode 80 443 localhost:10080

Pues bien en el caso de las Hololens, tenemos algunas features muy interesantes como la capacidad de ver en tiempo real el tracking del device

2016 08 22 Hololens Tracking Debug Mode

Un streaming en tiempo real de la cámara del device. Además de los sonidos de las apps, del micrófono y los hologramas.

Clipboard01

Podemos además, configurar las redes, ver las opciones de depuración y como complemento para el post de ayer podemos apagar o reiniciar el device desde el portal web.

Clipboard02

Saludos @ Toronto

El Bruno

References

#Hololens – Shutdown or Restart, maybe is not that easy

Hi !

The new way to interact with devices is basically taking off the keyboard and mouse, and incorporate new stuff like gestures, voice commands and very big changes in the interface commands. Al these changes are great but some easy things as a Shutdown or a Restart are not trivial are they used to be.

Lucky for us, Hololens is still Windows 10. So somewhere inside the device is still the idea of Shutdown or Restart. For example, when we enable the Developer mode, the device tell us these changes only apply after restarting the device.

Well, the simple way to make a Shutdown of the device is to press 4 seconds the back button. This is something we can read on the developers page at Turn HoloLens off and on

image

If you’re working in Developer mode, maybe you got a new option. Surely you have already installed the Microsoft HoloLens app  (https://www.microsoft.com/store/apps/9nblggh4qwnx) This app gives us the possibility to connect and interacti to the device

image

In the Device Info section, we now have the Shutdown or Restart options

image

It is not the most trivial, but it works!

Greetings @ Toronto

El Bruno

References

#Hololens – Shutdown o Restart, no es tan facil como parece

Hola !

El nuevo paradigma de interfaces que se van despegando del teclado y mouse, e incorporan gestos, comandos de voz y grandes cambios en la interfaz, hace que cosas tan simple como un Shutdown o un Restart no sean triviales.

Lo bueno de las Hololens es que siguen siendo Windows 10, o sea que por detrás sigue existiendo la idea de Shutdown o Restart. Por ejemplo, cuando habilitamos el modo Developer, el device nos comunica que esos cambios solo se aplicarán después de reiniciar el device.

Pues bien, la forma simple de hacer un Shutdown del device es presionar durante 4 segundos el botón que tiene detrás. Esto nos lo comunican en la página de desarrolladores en Turn HoloLens off and on

image

Otra opción se nos presenta si estas trabajando en modo Developer. Seguramente ya has instalado la app Microsoft HoloLens (https://www.microsoft.com/store/apps/9nblggh4qwnx) que nos brinda la posibildad de conectarnos al device e interactuar con el mismo

image

Pues bien, en la sección Device Info, tenemos las opciones de un Shutdown o un Restart

image

No es lo más trivial, pero funciona !

Saludos @ Toronto

El Bruno

References

#Windows10 – IoT Core, first look to IoT Dashboard, Device Portal and Remote Client

Hello!

After review some of the updates for Windows 10 IoT Core, I realized the new app for managing Windows 10 IoT Core devices is great.

Setup a new Device

The creation of the image to the SD card that will be used in a device is quite simple. From the following view we can

  • Select the type of Raspberry Pi 2 or 3, Minnoboard Max, Qualcomm Dragon Board 410 c or custom
  • Select the version of OS that you want to use, stable or prereleases
  • Select the disk where you want to save this image
  • Define the name of the device and set the password if you want to use one

image

Once we have defined these values, in few minutes you can have our SD list to use.

My Devices

The next step is to initialize the device. The main constrains here is to be in the same network, once we are in the same network can see the devices in the [My Devices] section.

image

In each device, we will be able to

  • Open the device management portal
  • Launch PowerShell
  • Open a network share against the device
  • Copy your IP address or name
  • Access the settings to change the name

image

Device Portal

This section deserves a full post, there are plenty of new options, which are very useful.

image

I share some of which are more useful

  • Pair BlueTooth devices directly from the portal

image

  • Define network profiles and connect to WiFi networks

image

  • Access and download updates from Windows Update for Windows 10 IoT Core

image

  • Configure a hotspot for sharing internet access directly from the device

image

  • Configure TPM and finally launch the remote client

Remote Client

One of the most interesting options we have in this version is the ability to have a Remote Client for our device. This remote client is a Universal App called Windows IoT Remote Client

image

Once launched the app, we can use the name or the IP address of our device to connect

image

And once connected, we have total control of what shows our device.

image

I think that is a new review of the most interesting stuff.

And, yes, the AZURE section also deserves a separate post.

Greetings @ Toronto

El Bruno

References

#Windows10 – IoT Core, un vistazo al IoT Dashboard, Device Portal y Remote Client

Hola !

Revisando un poco las novedades para Windows 10 IoT Core me encuentro con que la nueva app para la gestion de W10 IoT Core devices es bastante sorprendente-

Setup a new Device

La creación de la imagen para la SD que usaremos en un device es bastante simple. Desde la siguiente vista podemos

  • Seleccionar el tipo Raspberry Pi 2 o 3, Minnoboard Max, Qualcomm Dragon Board 410c o custom
  • Seleccionar la version de OS que queremos utilizar, estable o prereleases
  • Seleccionar el disco donde queremos grabar esta imagen
  • Definir el nombre del device y definir la contraseña si decidimos ponerle una

image

Una vez definidos estos valores, en pocos minutos podremos tener nuestra SD lista para usar.

My Devices

El siguiente paso es inicializar el device, y si estamos en la misma red podremos ver los devices en la sección [My Devices].

image

En cada device podremos

  • Abrir el portal de administración del device
  • Lanzar PowerShell
  • Abrir un networkshare contra el device
  • Copiar su dirección IP o el nombre
  • Acceder a las settings para cambiar el nombre

image

Device Portal

Esta sección se merece un post completo ya que las nuevas opciones que tenemos son muy útiles.

image

Remarcaré algunas de las que son más utiles

  • Emparejar dispositivos BlueTooth directamente desde el portal

image

  • Definir perfiles de red y con los mismos conectarnos a redes WiFi

image

  • Acceder y descargar actualizaciones de Windows Update para Windows 10 IoT Core

image

  • Configurar un hotspot de acceso a internet directamente desde el device

image

  • Configurar TPM y finalmente lanzar el cliente remoto

Remote Client

Una de las opciones más interesantes que tenemos en esta versión es la capacidad de tener un Remote Client para nuestro device. Este remote client es una Universal App llamada Windows IoT Remote Client

image

Una vez lanzada la app, podemos utilizar el nombre o la IP de nuestro device para conectarnos al mismo

image

Y una vez conectados, ya tenemos control total de lo que muestra nuestro device.

image

Y listo, creo que como un repaso a lo más interesante me queda completo el post.

Eso sí, la sección de AZURE también merece un post separado.

Saludos @ Toronto

El Bruno

References