In my previous
posts I wrote about how to prepare a developer station with a Raspverry Pi 4. I
wrote on how to install Visual Studio Code, how to install .Net Core and how to
build and run C# projects. Of course, the next step is to work with Git.
to install git is
apt-get install git
However, I already
have Git installed. I haven’t checked, but it seems to me that the latest
Raspbian distro includes by default git. I was hoping that VSCode will
recognize and use this, but in order to work with Git in VSCode I need some
extra work in the IDE settings.
I was able
to clone some repositories from GitHub and Azure DevOps, directly from bach
fix Visual Studio Code and Git integration. This one is very easy, I just need
to go to Settings, search for Git and define the Git path for VSCode.
In order to
find the git path, we need to use the [which] command
pi@rpidev3:~ $ which git
My got location is [/usr/bin/git].
I’m not a
command line dude! I like User Interfaces, so now it’s time to open one of the cloned
repositories in Visual Studio Code. I can see that VSCode recognices Git and I
can start to commit my files.
also a perfect moment to define Git user name and user email.
The Global AI Night is a free evening event organized by 93 communities all over the world that are passionate about Artificial Intelligence on the Microsoft Azure. During this AI Night you will get inspired through sessions and get your hands dirty during the workshops. By the end of the night you will be able to infuse AI into your applications.
Creating applications that can see, hear, speak, understand and even read !
using Microsoft Cognitive Services. In this workshop you will be introduced to the Microsoft Azure Cognitive Services, a range of offerings you can use to infuse intelligence and machine learning into your applications without needing to build the code from scratch. We will cover pre-trained AI APIs, such as computer vision and text analytics, that are accessed by REST protocol. We will also feature one of the most recent and powerful Services: Form Recognizer. Form Recognizer applies advanced machine learning to accurately extract text, key/value pairs, and tables from documents. With just a few samples, Form Recognizer tailors its understanding to documents. Wrapping the workshop up by building our custom trained AI into an application
Introduction to ML.Net and AutoML
ML.Net is an open-source and cross-platform machine learning framework for .NET developers. Using ML.Net , developers can leverage their existing tools and skillsets to develop and infuse custom AI into their applications by creating custom machine learning models for common scenarios like Sentiment Analysis, Recommendation, Image Classification and more. AutoML (Automated Machine Learning) is a collection of new technologies from Microsoft to enhance the data science development process. In this workshop you will be introduced to the core features and scenarios of ML.Net and also to the preview feature of Model Builder for AutoML.
move on with some lessons learned using Visual Studio Code in the Raspberry Pi 4.
One of the first
issues you may find working with VSCode in the device is related to file write
permissions when you are saving a file.
So, it was a good opportunity for me to learn about files and folder permissions in Linux. I found a great starting article “How to Manage File and Folder Permissions in Linux” (see references), and it allowed me to fix this issue.
error was triggered when I try to build my project. Again, it was a permission
error MSB3021: Unable to copy file "obj/Debug/netcoreapp2.2/dotnethelloworld.dll"
to "bin/Debug/netcoreapp2.2/dotnethelloworld.dll". Access to the path
is denied. [/home/pi/dotnethelloworld/dotnethelloworld.csproj]
this time the fix was not related to file and folder permissions.
One of the solutions I found, was to run VSCode with admin privileges. This is probably one of the worst ideas ever, and you can find tons of articles explaining why this is bad (see references).
decided to give it a try. Of course, it worked. Let me share how.
VSCode with the following command, which runs the app in root mode.
Welcome to the part two of this series of posts i will be writing about Azure Kinect. This post is special because yesterday Microsoft launched Azure Kinect Sensor SDK 1.2 update. It includes support for C#, color exposure get & set API fixes, public availability of C++ playback API, and firmware updates for improved USB compatibility.
During the next couple of months, I’ll be sharing some amazing experiences around AI. Some of these experiences includes IoT devices like a Raspberry Pi, and of course some Machine Learning.Net (ML.Net). Because ML.Net is built with .Net Core, it makes sense to share the 5 simple steps you need to do to install .Net Core in a Raspberry Pi.
my 1st try was to navigate to the official .Net page (see
references), which automatically detect my Linux distro and proposes a set of
completely sure that I’m working in a 32 bits environment, however I’ll double
check this with the following commands
sudo apt-get install lshw lshw
After installing lshw I confirm that I’m in a 32 bit environment
Bonus: lshw is a small tool to extract detailed information on the hardware configuration of the machine. It can report exact memory configuration, firmware version, mainboard configuration, CPU version and speed, cache configuration, bus speed, etc. on DMI-capable x86 or IA-64 systems and on some PowerPC machines (PowerMac G4 is known to work).
Now I need to navigate to the download page to download the
specific Linux 32-bit version (see references).
Once I got the image downloaded its time to extract the file
on a specific folder. I’ve created a folder named “dotnet” with the following command
sudo mkdir -p dotnet
And to extract the image from the Downloads folder
sudo tar zxf dotnet-sdk-2.2.401-linux-arm.tar.gz -C
Let’s create a symbolic link to the extracted binaries
sudo ln -s /home/pi/dotnet/dotnet /usr/local/bin
And it’s done! Let’s invoke the .DotNet help command to test
Now we can follow the steps of [.NET Core on Raspberry Pi,
see references] to create a Console Application and to test the device.
To create a new console App
dotnet new console
And test the app
sudo dotnet run
We can publish the app for linux / raspberry pi
sudo dotnet publish -r linux-arm
And copy the generated folder to be used in another device
So next steps will be some other tests with Raspberry Pi and
.Net Core. And the following image is a big teaser of this
A la hora de organizar y posicionar los elementos visuales que componen la interfaz de usuario en Xamarin.Forms, hacemos uso de Layouts.
Tenemos una enorme variedad de Layouts en Xamarin.Forms. Podemos posicionar de forma absoluta; de forma relativa; apilar elementos; etc. Con un uso correcto de los mismo se pueden cubrir la mayoría de necesidades pero…¿qué ocurre cuando no nos encaja al 100%?.
Por ejemplo, si necesitamos posicionar botones circulares alrededor de una imagen circular (perfil de usuario), ¿que Layout nos encaja?. Podemos conseguir nuestro objetivo con los Layouts disponibles pero probablemente con ajustes específicos para posicionar cada elemento. ¿Podemos conseguirlo de forma más sencilla?.
Un Layout es una clase que deriva de View. Podemos crear Layouts personalizados en Xamarin.Forms con clases que hereden de Layout<T>.
One of the biggest struggles employees are facing in today’s world of a digital and modern workplace is – fear. Fear of changing the way we are accustomed to working, the way our brains think, the way we complete repetitive tasks, and the fear of allowing a machine, an intelligent machine, to take over jobs.
When most of us hear the word “AI”, the mental image is dark and unwelcoming.
I dedicated this post to all employees who are hesitating to change the way they conduct their day to day tasks, to leaders who are struggling to communicate Office 365, and to all those who just don’t want to change!
I would like to share my tips on how I shed light on machine intelligence, to cast away the darkness, and embrace the new age of a digital and modern workplace.
This problem is about dividing the set of iris flowers in different groups based on the flower features. Those features are the length and width of a sepal and the length and width of a petal. For this tutorial, assume that the type of each flower is unknown. You want to learn the structure of a data set from the features and predict how a data instance fits this structure.