teleren/devto huggingface dataset:
Detectar imágenes con inteligencia artificial
Tags: ai, python, beginners, github
Published: 2021-05-23 22:44:09

Hola, soy Juan Miguel!

Quisiera iniciar mis entradas en este blog con uno de los temas que más me atraen, la inteligencia artificial. 

Les advierto, para realizar este tutorial es necesario contar con conocimientos básicos en python y github. 

**Iniciemos!**

Primero el problema: se nos presenta un requerimiento de reconocer el contenido de un conjunto de imágenes ingresadas por un usuario.

¿Cómo podríamos hacer esto? 

Pues, si somos programadores muy avanzados quizás podríamos realizar el algoritmo para reconocer el contenido de las imágenes, pero gracias a la maravillosa comunidad de desarrolladores de software, esto no es necesario. Existe [ImageAI](https://github.com/OlafenwaMoses/ImageAI)!

### ImageAI
Herramienta perfecta para el reconocimiento de imágenes y por supuesto, gratis para probarla y jugar con ella. Vamos a ello!

Tengo preparado un repositorio listo! Va a ser increíblemente sencillo, créeme; [Link al repo](https://github.com/juanmiguelar/ImageAI_Lab)

#### ¿Qué podremos encontrar en el repositorio? 
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/59n4adi8c9lpmmgjp97v.png)

1. **brain.py**: Archivo de python listo para probarse.
2. **giraffe.jpg, godzilla.jpg, house.jpg**: Imágenes para probar
3. **mobilenet_v2.h5**: A este archivo, quizás podríamos llamarle la _inteligencia_.

Cuando descarguemos este repositorio necesitamos ejecutar los siguientes comandos para poder correr el brain.py:
```
pip install tensorflow==2.4.0
pip install imageai --upgrade
```

Debemos tomar en cuenta que la inteligencia que estamos utilizando en este tutorial no es muy avanzada, pero [aqui](https://github.com/OlafenwaMoses/ImageAI/blob/master/imageai/Classification/README.md) les dejo el enlace para que prueben con otras más precisas. 

Les dejo un vídeo para guiarles en todo el proceso.
{% youtube jj4_pFJBt8I %}

Un saludo!

[LinkedIn](https://www.linkedin.com/in/juanmiguelar/)
[Github](https://github.com/juanmiguelar)
Deploying Jekyll with GitHub Actions, not Pages
Published: 2021-05-23 22:37:23



I built a [Gem](https://rubygems.org/gems/jekyll-twitch) that embeds Twitch clips in Jekyll Sites! Unfortunately, I can’t use it, because I’m deploying using github-pages. So let’s change the deploy process. 😏

# Why do we have to do this?

[GitHub pages](https://pages.github.com/) is where [my site](https://www.chael.codes) is hosted. They require you to add the gh-pages gem instead of the jekyll gem, and they lock the version of Jekyll at 3.9.0. They would have to rework how gh-pages interacts with GitHub servers to support Jekyll 4.0, and that would break all the 3.9 sites out there. _[They’ve decided not to upgrade instead.](https://github.com/github/pages-gem/issues/651)_

They also don’t let you add [random plugins](https://docs.github.com/en/github/working-with-github-pages/about-github-pages-and-jekyll#plugins). Only their allow list, and [my baby Jekyll-Twitch](https://github.com/ChaelCodes/jekyll-twitch/) isn’t on it.

# So, what’s the plan?

Jekyll has shared a guide on [deploying using GitHub Actions](https://jekyllrb.com/docs/continuous-integration/github-actions/). We’ll need a `github_pages.yml` file in `.github/workflows`. This is going to trigger every time we push to main. It’ll call out to a [jekyll-action](https://github.com/helaili/jekyll-action) created by helaili which deploys the static site on the gh-pages branch. The jekyll-action deprecates [JEKYLL\_PAT](https://github.com/helaili/jekyll-action#deprecation), so we should update [their docs](https://github.com/jekyll/jekyll/blob/master/docs/_docs/continuous-integration/github-actions.md) while we do this.

There’s some additional GitHub configuration necessary. First, the jekyll action needs a github token to push to the gh-pages branch, then GitHub needs to use the gh-pages branch instead of the main branch.

We’ll need to include a [secret](https://docs.github.com/en/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) in our [action](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsenv) to store the github token.

[This was easier than I thought.](https://github.com/ChaelCodes/chaelcodes.github.io/pull/11)
Power Automate Desktop
Tags: development, desktop, flow, powerautomate
Published: 2022-06-15 17:23:45

---
title: Power Automate Desktop
published: true
date: 2021-05-23 22:15:00 UTC
tags: Development,desktop,flow,PowerAutomate
canonical_url: https://barretblake.dev/2021/05/power-automate-desktop/?utm_source=rss&utm_medium=rss&utm_campaign=power-automate-desktop
---

This time round I'm going to delve into Power Automate Desktop (PAD). PAD is a service that allows you to perform activities on a local machine as part of a flow. It's a service that used to require an extra subscription cost, but it's now available to everyone included with whatever tier of Power Automate you currently have.

The post [Power Automate Desktop](https://barretblake.dev/2021/05/power-automate-desktop/) first appeared on [Barret Codes](https://barretblake.dev).
Part 6 video of pair programming a Perl web app
Tags: programming, link, meetup, mojolicious
Published: 2021-05-25 15:03:05

---
title: Part 6 video of pair programming a Perl web app
published: true
date: 2021-05-23 21:39:27 UTC
tags: Programming,link,meetup,Mojolicious
canonical_url: https://phoenixtrap.com/2021/05/23/part-6-video-of-pair-programming-a-perl-web-app/?utm_source=rss&utm_medium=rss&utm_campaign=part-6-video-of-pair-programming-a-perl-web-app
series: Live-coding a web app in Perl and Mojolicious
---

{% youtube T1vh3zcPOT0 %}

Today [Gábor](https://code-maven.com/) and I continued our work on a management application for his training courses powered by [Mojolicious](https://mojolicious.org/). **Big accomplishment this time:** we went from a single upload form for exercises going to a preset file all the way to a multi-file form where every exercise has its own list of files for submission. We also had a little detour into [Docker](https://www.docker.com/)-land where we simplified his launch command into `docker-compose up`.

[Head on over to Perl Maven](https://perlmaven.com/course-management-app-in-mojolicious) if you’d like to catch up with previous installments or register with Zoom for the next one scheduled on **Sunday, May 30**.
Distributed Systems in Terms of Scalability, Fault tolerance and Latency
Tags: distributedsystems, database, bigdata, cloud
Published: 2021-05-23 21:09:54

Hello Geeks

In a simple way, distributed systems is a **Shared Architecture** to achieve three aspects, terms of scalability, fault tolerance and latency for a system with multiple machines which supposed to achieve high availability of data storage and retrieval.

In a simple words, distributed systems consists of machines or **virtual machines** , each one of these machines is called **Node** , each one of these nodes use independent resources.

  
To build a distributed system only you need to now is the following two ways: **`Replication`** and **`Partitioning`**

And we will talk about **Replication**

*Let's get started!*

## Replication
means keeping a copy of the *same* data on a multiple machines that are connected via a network.
Replication has advantages:
* Allow users in different locations to access the data.
* Give the system the ability to work even if one of the nodes is down, another node will work instead and serve the users, because replication provides the redundancy.
* Improve and Increase throughput.

So how we can implement this type of distributing data, we have several ways we'll talk only about the first simple architecture, which called `Leaders and Followers`

## Leaders and Followers
this way provide nodes, called *replica*, this way also called *leader-based replication*.

### The components of the above architecture
* Leader (called *active*) has the replication log.
* Follower (called *read replicas*) they are the other replicas.

### How it works
When a user need to write its data to the application, data forwarded to the *leader* which is the write-only replica, then the leader saves the changes and send them to the all followers using a log to tell them the changes must be applied to the database, and so far we have the same data in all nodes.
and if the user want to read its data again, the request forwarded to one of the followers.

![LEADER-FOLLOWERS](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/932di23k5dsfuoiv7wwt.png)

### Used in
replication used in databases like: **PostgreSQL**, **MySQL**, **Oracle Data Guard** and **SQL**
Also used in NoSQL databases like: **MongoDB** and **Espresso**

---

Glad you got here, this topic is an important topics for software engineers, especially for Data and Big Data Engineers, You need to read a book to gain the whole knowledge or watching a specialized course, to know more about distributed systems, so i recommend the best book as a start, which called **Designing Data-Intensive Applications** it is a really worth book to read.

Thanks a lot for reading this article, if you love the content, share it to help others to learn more. Bye Bye! 👋

---

HEADER IMAGE: `Hackernoon`.
LEADER-FOLLOWER IMAGE: `Designing Data-Intensive Applications`.
Azure Devops 2019.1 Build Agent running on a pod in my Kubernetes cluster
Tags: vsts, kubernetes, azuredevops, devops
Published: 2021-05-23 20:13:12

As a "toy" I decided to try and revive an old version of Microsoft's `Azure Pipelines Agent` on an image from before they made that Azure `Services` Only.   However, I updated the agent on the `ubuntu-16.04-tfs-2018-u2` image to a later version of the linux agent.  (2.140.2)

https://hub.docker.com/_/microsoft-azure-pipelines-vsts-agent

I had to also update the Team Explorer Everywhere (TEE/TEE-cli) that was embedded in that to the latest version. And upgrade java to version 11.   But once that was done, it works well.  Its a tad on the large size for an image.  (1gb), but it seems ok on its memory and CPU usage.  See the kubebox graph at the bottom.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9fgt1dihnj25xcbuj117.png)

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oi11k14r0b98shxaxg85.png)

Does anyone think this could be more than just a toy ?  I'm a novice at most Kubernetes stuff compared to the folks here, but I wanted to share this.
Top 10 Websites for Developers
Tags: productivity, webdev, beginners, javascript
Published: 2021-05-23 20:05:16

1. IndieHackers.com

If you are starting to make your own internet startup or company, IndieHackers is one best places for you to start a internet company without raising money. 

IndieHackers is a community of developers and entrepreneurs who are trying to build profitable internet companies without raising money.

Visit Here - https://www.indiehackers.com

2. Udemy

Udemy is one of the biggest video tutorial websites in the world. It has amazing tutorials on almost every tech-related topic.

You can learn anything from there without getting broke, Or just if you are a student and you don't have thousand's to spend on. 

Visit - https://www.udemy.com

3. Coursera

Coursera is also one of the biggest place to learn but it costs more. Coursera courses are definitely more valuable for your certification, as they are from well known companies. But nothing is more important than skill. 

So, if you can afford, then you can definitely go for Coursera. 

Visit Website - https://www.coursera.com

4. Resumake.IO

Resumake.IO is an open-source website that helps you make a resume for applying to Software Engineering jobs.

You want a no bull-shit, easy to use resume maker & You can export the resume as PDF, Latex, and JSON so that you don't have to start from scratch the next time. Then Resumake.IO is the perfect place for you. 

Visit Website - http://resumake.io/


follow me on [Twitter](https://twitter.com/chetanistaken) & [Github](https://github.com/itschetan)

5. Leetcode

Leetcode is a website that helps you prepare for software engineering interviews.

They have industry-quality questions, best for interviews.

Visit Website- https://leetcode.com/

6. Glassdoor

Glassdoor is a website where employees review their companies.

You want to know what it is like working for the company. You want to know how much are the employees paid in the company. Then Glassdoor is for you.

Visit Websites - https://www.glassdoor.com/

7. DigitalOcean

DigitalOcean is a hosting provider in which you can host your servers, databases, etc. It’s very popular among developers.

Visit Website- https://digitalocean.com/

8.StackExchange

Everyone knows of StackOverflow.com and AskUbuntu which are part of StackExchange network. But there are dozens of other sites in the StackExchange network that are dedicated to programming. 

Visit Website - https://stackexchange.com/

9. Github

GitHub requires no introduction for software developers. It’s the place on the Internet where open source projects are built.

If you don't have GitHub then you are not a programmer.

Visit Website-  https://github.com/

10. DevDocs.IO

DevDocs.IO is a single-page open source app that allows you to search documentation of all popular programming languages and frameworks.

Visit Website - https://devdocs.io/

follow me on [Twitter](https://twitter.com/chetanistaken) & [Github](https://github.com/itschetan)

----Bye----
Removing Background Noise from Pre-recorded Audio
Tags: audio, video, podcast
Published: 2021-05-23 19:39:05

So you recorded your podcast and everything went great! You open up your recorded files and notice some pretty nasty background noise. You have a few options on removing this noise:

- Use some noise gates to get rid of it => Wont be able to remove everything, especially noises mixed with the voice
- Manually edit it out => still doesn't work with mixed audio
- cry

There are tools that work _while_ recording (such as [krisp.ai](https://krisp.ai)) but not once you have a recording.

...unless you use some audio wizard!

## 1. Download [Loopback](https://rogueamoeba.com/loopback/)

From Loopback's website:

> With the power of Loopback, it's easy to pass audio from one application to another. Loopback can combine audio from both application sources and audio input devices, then make it available anywhere on your Mac.

So using this app we will be able to send audio from one application (whatever is playing your video) as an input to another application (krisp.ai to remove the background noise)

## 2. Download [krisp.ai](https://krisp.ai)

This app will enable use to us AI to remove the background noise from your audio

## 3. Set up Virtual Capture Device

Once you have loopback installed we will need to set up a virtual device. This will make the `Descript Audio` virtual device available to other applications.

![Routing audio from Descript into a Loopback virtual device](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qir5m3y0d25ogmwm7uos.png)

## 4. Set krisp.ai's Input to `Descript Audio`

Now set krisp.ai to use our virtual device as its input. This will enable krisp to remove the audio from the other app once we start recording. 

> Make sure the switch the `Remove Noise` option on.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5jbtgubnwwa1nm0mdqwv.png)

## 5. Use QuickTime for Capture

Now that we have our audio routing set up all that's left to do is actually capture it!

Open QuickTime and start a new audio recording (`File => New Audio Recording`).' Then using the dropdown select `krisp microphone` as the capture device.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/meprqxvnfcqn3ddn5ooe.png)

## 6. Start Capture

Now all you have to do it hit the `Record` button in QuickTime and start playing you audio in whatever application you are capturing. While this is happening you won't hear anything come out of your speakers because QuickTime is capturing it. 

Wait until your video is done and stop recording. You know have you audio with all the background noise removed! :tada:
5 Awesome Thing You Can Build With Node.Js
Tags: codenewbie, node, javascript, react
Published: 2021-05-23 19:28:20

Node.js is not just for making simple websites, but awesome, dynamic, real-time experiences. Here are some Node.js project ideas to spark your inspiration:

1. GIF Chat Room
Node.js is built for making chat applications. Here’s a novel twist. Chrome and Firefox have an API to access a computer’s camera. Images from the camera get processed around the submission of a chat message and a GIF is sent to the room.

2. Build your Own Zoom
With the rise of working from home and modern Web APIs like WebRTC being supported by more and more browsers, Zoom & Google Hangout-like applications are going to get more common. Talky.io is one of those .You (and a friend) can visit their website in a compatible browser and try it out for yourself! Check out either a short or long tutorial to learn how to build your own.

3. Job Search App
Node’s capabilities to communicate with APIs make it ideal for building full stack applications. This tutorial uses the Adzuna jobs API, vanilla JS, and Node to create a job searching app and add custom features you’d like to see in your favorite app.

4. Collaborative Drawing Tool
Treehouse students will learn how to build a simple drawing application in jQuery in the course jQuery Basics. The functionality has been extended with Node.js so that multiple people can draw on the same canvas!

5. Covid-19 Tracker
Node.js is a powerful tool for writing server side JavaScript and allows you to interact with APIs and pass data to the front end. You can use Node.js in combination with React and chart.js to create a COVID tracking app. This example pulls data from the CDC so you can stay up to date with stats.

At last I want to say that this is just some of the example I gave to you there's anything you can build.

THANKS FOR CHECKING OUT :D

JOIN THEVIKCODE NEWLETTER ( GET DAILY WHICH WILL NOT BE AVAIBLE HERE ) - https://thevikcode.substack.com/
More interactive samples: PuppeteerSharp
Published: 2021-05-23 19:21:12

<sub>Photo by <a href="https://unsplash.com/@kikisad">Killian Cartignies</a> on <a href="https://unsplash.com/s/photos/tactile">Unsplash</a>
  </sub>

Following [the notebook](https://raw.githubusercontent.com/dotnet/vscode-dotnet-pack/main/misc/Getting%20started%20with%20.NET.dib) that demonstrates how to learn .Net, i'm posting here the sample to play with PuppeteerSharp.

## External Reference download

First, let's declare eternal dependencies required, in a dedicated section of code.

```csharp
#r "nuget:PuppeteerSharp, 4.0.0"
```

## Global context initilization

Then, let's init variable that we will use through the notebook.
It will take some time as a dedicated version of chrome will be downloaded.

```csharp
using PuppeteerSharp;

await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
    Headless = true
});
```

We will have now a browser initialized.

## Play with it

We can now do some basic tests or more complicated ones. 

### Take screenshot
```csharp
var page = await browser.NewPageAsync();
await page.GoToAsync("http://www.google.com");
await page.ScreenshotAsync("./FirstTest.png");
```

### Select content
```csharp
var currentPage = await browser.NewPageAsync();
await currentPage.GoToAsync("http://www.google.com");
await currentPage.QuerySelectorAllHandleAsync("input[name=q]").EvaluateFunctionAsync("el => el.value = 'test'");
await currentPage.ScreenshotAsync("./screenshot.jpg");
var output = await currentPage.QuerySelectorAllHandleAsync("div[id='SIvCob']").EvaluateFunctionAsync<string[]>("el => el.map(a => a.text)");
display(output);
```
Note: display method is provided by dotnet interactive.

### Iterating urls

```csharp
using (var page = await browser.NewPageAsync())
{
    await page.GoToAsync("http://www.google.com");
    var jsSelectAllAnchors = @"Array.from(document.querySelectorAll('div')).map(a => a.innerText);";
    var urls = await page.EvaluateExpressionAsync<string[]>(jsSelectAllAnchors);
    foreach (string url in urls)
    {
        Console.WriteLine($"Url: {url}");
    }
}
```



Hope this helps !
How to write more content when you don't have time
Tags: career, codenewbie, watercooler, writing
Published: 2021-05-23 18:49:25

Photo by <a href="https://unsplash.com/@glenncarstenspeters?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Glenn Carstens-Peters</a> on <a href="https://unsplash.com/s/photos/writing?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>


If you have a full time job, and you've tried writing before, you'll find it's a really time-consuming process. After work, I don't want to jump on the keyboard again and start writing about things related to my job. But I've decided to try and write one article a week, and I've started to develop a system that makes it easy to write.

In this article I'm going to show you my system and how I've organized it so that writing articles is faster and more rewarding. 

# 1. Keep a bank of ideas

I have a bank of ideas in a notion page. When I have an idea for an article I add a title (that later I might change) to this list so that I always have fresh ideas to pick from.

# 2. Outlines

When I write an article I start first with an outline with stuff I'm going to talk about. Usually to come up with the outline I ask questions about the subject, or I google what people are asking about the subject. When you have questions you basically have the sections of your article, for example, let's say you're writing an article about Frontend Testing with Jest.

"How do I install jest in my React project?" could be a question someone could have. So the first point in my article would be:

"How to install Jest in your React Project" 

Sometimes I leave the question as the title of the section since it could help with SEO.

# 3. Batching tasks

When you sit down to write an outline what you can do is, instead of trying to write an outline and an article in a sitting, try and create 3 or 4 outlines for different articles. That way next time you sit down to write it will be easier.

# 4. Research when you have the outlines

Once you have the outline, you just have to do the research for the sections you've decided that will go in the article. You don't have to become an expert on the whole topic. Just search and learn about the things you've decided will go in the article.

What I also do is take a lot of notes when I do courses, read docs, learn new things by building them. Usually my notes make their way into articles.

# 5. Writing

If you have a few titles and outlines, writing 2 or 3 articles in one sitting is usually faster than trying to start from scratch and do the whole process for one article. 

# Conclusion

Try to batch your tasks and keep a stash of ideas, outlines and notes so that when you sit down to write you're 100% ready and just have to put the words together.

## Follow me on [Twitter](https://twitter.com/jordienr) for more :)