#MSIgnite – Diversity is more, much more! Living in tech as a Latino who can’t dance > See you in November @Msignite!

Hi!

If you think that my blog was hacked, not yet.

Someone advised me to get out of my comfort zone, and somehow my comfort zone is usually speack tech at tech events. So, I decided to try a new format for a session, with some of the stories I usually share in my tech presentations. And that’s how this session was born, and also approved to be at Microsoft Ignite

Diversity is more, much more! Living in tech as a Latino who can’t dance

I was born and raised in Argentina, then I lived eleven years in Spain working all around Europe. Finally, three years ago I moved to Canada. And yes, my Latin background impacted my professional career.

This session is mostly sharing what I’ve learned during these past years. How I learned to get the most from sentences like “You have a very strong accent; I don’t think you will fit this meeting. These are Senior Executives” or “Wow, your accent is amazing, our leadership team will love it!” In both scenarios, I manage to move from frustration or surprise to “let’s focus on our business.”

And it’s not only about language and accent; family, culture, and even food and drinks are a part of the story. Espero que nos veamos en la sesion!

https://myignite.techcommunity.microsoft.com/sessions/80650?source=sessions

Happy coding !

Greetings @ Toronto

El Bruno

Advertisements

#VSCode – 20 lines to display a webcam camera feed with #Python using #OpenCV

Hi !

I always write this from scratch, so it seems that I’ll drop this one here. So next time I search for this, I’ll find myself.

And with some extra lines, we can even detect faces and display some face landmarks:

This is the base of some many image recognition scenarios, so I hope this will save me some local search time 😀

Happy coding!

Greetings @ Toronto

El Bruno

References

My posts on Face Recognition using Python

  1. Detecting Faces with 20 lines in Python
  2. Face Recognition with 20 lines in Python
  3. Detecting Facial Features with 20 lines in Python
  4. Facial Features and Face Recognition with 20 lines in Python
  5. Performance improvements with code
  6. More performance improvements, lowering the camera resolution

And some general Python posts

[Xamarin.Forms] Un vistazo a RefreshView

Javier Suárez | Blog

Introducción

A día de hoy, estamos a acostumbrados (y cada vez más) a utilizar gestos para realizar acciones concretas en las aplicaciones móviles. Actualizar el contenido, cambiar de sección, etc. El objetivo final es diverso pero sin duda alguna, una de las acciones con gestos más utilizadas es el Pull To Refresh.

Pull to Refresh

Pull To Refresh

En diseño para dispositivos móviles, este efecto es el gesto que se realiza para la actualización de contenidos. Es decir, el pull to refresh es el gesto que se hace deslizando (normalmente) la parte superior hacia abajo para actualizar los contenidos.

Usando RefreshView

RefreshView llega como un nuevo control en Xamarin.Forms que permite hacer pull to refresh sobre cualquier contenido scrollable (ScrollView, ListView, CollectionView, etc.). El uso es muy sencillo:

<RefreshView>
     <ScrollView>
     </ScrollView>
</RefreshView>

Ya tendríamos lo suficiente para poder hacer pull to refresh sobre el contenido del ScrollView. En este…

View original post 189 more words

#RaspberryPi – Putting all together to display device temperature using #AzureIoT and #docker. Privilege permissions and other lessons learned

Hi!

Today challenge was based on an easy one

How do I get a Raspberry Pi temperature using Python?

The lines to do this are quite simple, with the following lines we can get the absolute value for the device temperature, in Celsius (of course!)

Easy! My next step was to add a new [Device Property] to my [Device Template] in Azure IoT. I’ll store this as a temp string, so this is fine.

azure iot device template for raspberry pi with the temperature as device property

The lines to send the temperature as a device property are part of the following code sample. I also track the temperature as telemetry so I can work with the history of the device temp

So far, so good!

Now it was time to package all this in a docker image and run it from a container. I got an ugly surprise when I realize that I got an exception trying to get the device temperature

VCHI Initialization failed

Time to read and learn more about docker and containers on Raspberry Pi.

In the official documentation of [Docker Run, see references] I found a couple of options which may help me. There are 2 options to allow me access to the device temperature

  • Run the container with the specific path to the device I want to grant privileged access for my container
  • Run the container with the [–privileged] argument to enable access to all devices on the host

Of course, the 2nd one is easier, but much more dangerous

When the operator executes docker run –privileged, Docker will enable access to all devices on the host as well as set some configuration in AppArmor or SELinux to allow the container nearly all the same access to the host as processes running outside containers on the host. Additional information about running with –privileged is available on the Docker Blog.

I didn’t think twice and run my image with the [–privileged] argument.

sudo docker run --privileged -p 80:80 <Image ID>

And now I can get an amazing history and track of information using docker, containers and Azure IoT with a Raspberry Pi

azure iot dashboard displaying temperature history as a telemetry

Happy coding!

References

Announcing the Second Edition of Rock Your Code: Code & App Performance for Microsoft.NET

An amazing from from David and also a great way to help.

Please go to >> Purchase Printed Book From Amazon & Support The Voice of Slum

Today I am announcing the brand new edition of my book titled Rock Your Code: Code & App Performance for Microsoft .NET, now available on Amazon.

How fast your code executes is very important for your users and back-end server processes. This is even more important for the future as more and more users, use your app or services. Thinking about performance while you are first writing the code will save tons of time and money in the future! There are many ways to write the same block of code, some more performant than others.

Short of requiring your users to purchase faster machines with more memory and faster processors or the same for back-end servers, this book will show you the best practices when writing business apps, so your code can run as fast as possible and could lead to cost savings for your servers or cloud services.

View original post 369 more words

[Xamarin.Forms] RelativeSource Binding

Javier Suárez | Blog

Introducción

Estas usando un control enlazado a una colección (por ejemplo, un listado de peliculas) y en cada elemento cuentas con un botón para añadir la pelicula a favoritos. Por defecto, cada elemento tendra como contexto la pelicula de la colección enlazada al listado y añadir un comando en cada elemento no suena como la mejor idea pero…¿que hacemos en este caso?.

RelativeSource

Contábamos ya con otras soluciones para hacer Binding a un elemento visual (x:Reference) pero nos llega RelativeSource, la solución ideal en casos como el anterior.

RelativeSource es una extensión de marcado que se utiliza en casos de enlace particulares cuando intentamos vincular una propiedad de un objeto a otro de sus padres relativos. 

Veamoslo con un ejemplo sencillo. Vamos a trabajar con tareas:

public class TodoItem { public string Name { get; set; } public string Description { get; set; } public…

View original post 176 more words

#RaspberryPi – Where is my Task Manager? let’s try #htop

Hi !

As a Windows user, I use task manager a lot. You know that moment when

  1. Your PC start to work very slow
  2. You press CTRL+SHIFT+ESC to open Task Manager
  3. Select the not amicable process
  4. And Kill it !

Bonus: another group of people uses a more classic way

  1. Press CTRL+ALT+DEL
  2. Select Task Manager

These days where I’m doing part of my developer work in a Raspberry Pi 4 (see references), I was also in the need for a “Task Manager”. So a quick Bing/Google search pointed a couple of products, and htop seems to be a very popular one. And I also like the official product description

This is htop, an interactive process viewer for Unix systems. It is a text-mode application (for console or X terminals) and requires ncurses.

Official htop page (see references)

It seems that initially the product was created for Unix, and now supports FreeBSD, OpenBSD, macOS, and more. And, of course, it runs on Raspbian.

Question: Should I write a post on how to install Raspbian for Raspberry Pi? My guess is no, there are so many of this already out, but ... if get bored.

Before I move on, let’s take a look at htop running in my device, while I’m building a docker image using some amazing TensorFlow image analysis models.

The way to install htop is very straightforward.

sudo apt-get install htop

Then you can launch the app with

htop

Super Easy ! And again, the UI gives you a lot of very useful information, and because Linux users are heavy on commands and not mouse, 99% of the actions to control the app are using these commands

  • F1 – Help (explains everything, always nice)
  • F6 – SortBy (You can sort the list processes with this option. Sorting by user, CPU usage and memory usage can be useful.)
  • F9 – Kill (You can select a process and send a kill signal)
  • F10 – Quit (sometimes you gotta leave htop)
Note: Get the commands and learn from David Walz post (see references)

Happy Coding!

Greetings @ Burlington

El Bruno

References

Passed AZ-300 – My take on the new Microsoft exams

Cloudenius

This morning I passed the AZ-300 exam. To be honest, I was confident that I failed the exam. Especially because I ran out of time with only 80 – 90 %. In this blog post, I will explain you the good and the bad of this exam and the exam experience.

View original post 808 more words

#Azure – Sending custom Telemetry and Event information from a #RaspberryPi device to #AzureIoT Central

Hi!

Azure IoT Central is one of the amazing services we can use on Azure. I was wondering how easy is to use a Raspberry Pi using Raspbian and Azure IoT and here is my experience.

Let’s assume we had a device up to date using Raspbian, our next step will be to create an Azure IoT Central application. The official step by step is the main resource for this

Create an
Azure IoT Central application (see references)

Once we have our application, we can quickly create a new Raspberry Pi device and use it. However, I’ll do an extra step, lessons learned as a handsome developer

Create a Device Template

Go to [Device Templates] and create a new template

azure iot central create new device template

For Raspberry Pi, I’ll name this [Raspberry Pi Dev]

azure iot central create new device template raspberry pi dev

So now, I can add a new real device, in the Devices section from the left menu

azure iot central raspberry pi dev add new real device

Once you create a new real device, is important to copy and save for later the connection information. To access this, go to the top right [Connect] button

azure iot central raspberry pi dev real device connect information

Almost there, there is an official tutorial that explain how to send random telemetry information with a Python script in a Raspberry Pi. I’ll use it as base for this scenario.

Connect a
Raspberry Pi to your Azure IoT Central application (Python) (see references)

For this demo, I’ll add a custom telemetry property and a custom event to the device. Since I won’t use the device to track temperature, accelerometer, and more, I think it make sense to track some custom information.

So, I’ll go back to my Device Template definition and I’ll add a new Telemetry, named [t1], with the following information.

azure iot central raspberry pi dev new telemetry information

And now, I can run a custom version of my script that will send new telemetry information, for [t1]. Sample in line 18

After a couple of minutes running the sample script, I can see the telemetry information for T1. In this view, I enabled [Temperature] and [T1] to display the timeline.

azure iot central raspberry pi dev real device dashboard telemetry

And, next step will be to add an event, which is also a very important uses case in Azure IoT. Back in the Device Template, I add a new event named [event1]

azure iot central raspberry pi dev new event information

And added some extra lines of code to send also an event between telemetry, Line 22

In the following image, we can see how the events appears in the timeline, and we can also get some extra details clicking on each event.

azure iot central raspberry pi dev real device dashboard telemetry and events

Very cool! Next steps will be to integrate this with some image recognition scenarios.

Happy Coding!

Greetings @ Burlington

El Bruno

References