teleren/devto huggingface dataset:
Entenda a comunicação entre serviços com gRPC no DoWhile 2020
Tags: events, talk, workshop, grpc
Published: 2020-12-03 20:03:26

---
title: Entenda a comunicação entre serviços com gRPC no DoWhile 2020
published: true
date: 2020-11-30 14:52:51 UTC
tags: events,talk,workshop,grpc
canonical_url: https://blog.lsantos.dev/entenda-a-comunicacao-entre-servicos-com-grpc-no-do-while-2020/
cover_image: https://raw.githubusercontent.com/khaosdoctor/blog-assets/master/images/2020/11/Speakers_1200x630-Lucas-Santos.jpg
---

Estou super feliz de anunciar que fui convidado pela [RocketSeat](https://rocketseat.com.br/) para fazer parte do grupo de palestrantes no maior evento deles, o [DoWhile 2020](https://dowhile.rocketseat.com.br/inscricao/convite/khaosdoctor)!

O evento é **totalmente gratuito** e acontece nos dias 14 e 15 de Dezembro, então já sabe, deixa sua agenda pronta para não esquecer! O evento é totalmente online e tem como objetivo reunir todo o ecossistema de desenvolvimento em busca do aprendizado contínuo!

Quem quiser se inscrever, lembrando que é **gratuito** , é só acessar o link abaixo.

-> [Entenda a comunicação entre serviços com gRPC no DoWhile 2020](https://dowhile.rocketseat.com.br/api/dowhile-ticket.png?user=khaosdoctor)

Junto comigo vão estar outros profissionais incríveis do mundo da tecnologia, entregando conteúdos em forma de palestras, workshops, painéis e muito mais!

Neste evento vou estar ensinando a fazermos comunicações entre microsserviços utilizando gRPC de forma simples e prática em um workshop totalmente prático e _hands on_, então quem estiver curioso para saber como você pode parar de usar o ReST em suas APIs e começar a tipar todo o seu ecossistema, então esta é a talk!

Vejo vocês por lá!
How many threads should I create? (worker_threads) Nodejs
Tags: node, help, discuss, javascript
Published: 2020-11-30 14:51:13

I recently started looking into nodejs's thead_workers module. It seems really interesting however there is one thing that is not self-evident. The official documentation says that I should create a threadpool. But what should be the size of my threadpool? Should it be equal to my phyisical CPU count or cpu's thread count? For example I have a i5 with 4 cores and 8 threads. On my machine should I create a threadpool of 4 or 8? Less or more?
Padding in CNN
Tags: neuralnetworks, convolutionalneuralnetworks, paddingincnn, deeplearning
Published: 2020-11-30 14:42:08


We have seen the basic operation of convolution in the previous post.


> 
[Knowing Convolution Basics](https://dev.to/ashwinsharmap/basics-of-convolution-167l)

In this post, we will be discussing padding in Convolutional Neural Networks. Padding is the number of pixels that are added to an input image. Padding allows more space for the filter to cover the image and it also helps in improving the accuracy of image analysis.

Broadly classified, there are two types of padding. They are valid padding and same padding.

### **Valid Padding:** 
It implies no padding at all. That is input image is fed into the filter as it is. So if we consider the input of the order (**n**), a filter of order (**f**) and take stride=1, we get the output image of order (**n-f+1**).

![convolution total operation.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1606671845356/Ct28IFLMU.png)

We can notice here the order of output image decreases. Hence we can clearly state that some information is lost as we traverse from input to the output. The example provided above is only for one convolutional layer. But in deep neural networks, there is more than one convolutional layer. Hence this obtained output image when passed through the filter in further steps, will result in further shrinkage in size.

### **Same Padding:** 
In the case of the same padding, we add padding layers say 'p' to the input image in such a way that the output has the same number of pixels as the input. So in simple terms, we are adding pixels to the input, to get the same number of pixels at the output as the original input. 

So if padding value is '0', the pixels added to be input will be '0'. If the padding value equals '1', pixel border of '1' unit will be added to the input image and so on for higher padding values.

So if we consider the input of the order (**n**), a filter of order (**f**) and take stride=1, we get the output image of order (**n+2p-f+1**), if the padding layers added is equal to 1. We can either add zeros to the padding layer or the adjacent entry. The more commonly used method is to add zeros to the padding layer as shown below.

![Untitled.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1606671823252/36fQVkBHT.png)

**Hope you understood the concept. Thank you for reading.**
How to install pdf2htmlEX in Ubuntu 20.04
Tags: pdf2html, pdftohtml, pdf2htmlex, ubuntu
Published: 2020-11-30 14:37:44

pdf2htmlEX is a tool that allows you to convert PDF to HTML without losing text or format. pdf2htmlEX renders PDF files in HTML, using modern Web technologies. It is very useful if you want to convert academic papers with lots of formulas and figures to HTML format

This post will show you how to install pdf2htmlEX on Ubuntu 20.04 LTS.

As at the time of writing this post pdf2htmlEX is no longer packaged by Debian/Ubuntu, you will need to install from the pdf2htmlEX Debian archives (*.deb).

To get started you will need to install the dependencies:
```
sudo apt update
sudo apt install -y libfontconfig1 libcairo2 libjpeg-turbo8
```
If you get error about unmet dependencies run the following to fix broken packages
```
sudo apt apt --fix-broken install
```

Download latest *.deb package from [pdf2htmlEX repository](https://github.com/pdf2htmlEX/pdf2htmlEX/releases)

```
wget https://github.com/pdf2htmlEX/pdf2htmlEX/releases/download/v0.18.8.rc1/pdf2htmlEX-0.18.8.rc1-master-20200630-Ubuntu-bionic-x86_64.deb
sudo mv pdf2htmlEX-0.18.8.rc1-master-20200630-Ubuntu-bionic-x86_64.deb pdf2htmlEX.deb
```

Install the package
```
sudo apt install ./pdf2htmlEX.deb
```
_It is very important that you use a (relative or absolute) path to the *.deb file. It is the ./ in front of the pdf2htmlEX.deb file name which tells apt install that it is supposed to install a local file rather than a package name in apt install's internal package database._

Alternatively you could use the following commands:

```
sudo dpkg -i pdf2htmlEX.deb
sudo apt install -f
```

Test your installation
```
pdf2htmlEX -v
```
You should see something like this:
```
pdf2htmlEX version 0.18.8.rc1
Copyright 2012-2015 Lu Wang <coolwanglu@gmail.com> and other contributors
Libraries: 
  poppler 0.89.0
  libfontforge (date) 20200314
  cairo 1.16.0
Default data-dir: /usr/local/share/pdf2htmlEX
Poppler data-dir: /usr/local/share/pdf2htmlEX/poppler
Supported image format: png jpg svg
```
Readying JavaScript packages for better future
Tags: discuss, javascript, node, webdev
Published: 2020-11-30 14:28:21

---
title: Readying JavaScript packages for better future
published: true
description: 
tags: discuss, javascript, node, webdev 
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/wqnn5b7w2ex166eqshr7.jpg
---

Modern web applications consist of hundreds and thousands of files of different kinds. To manage this complexity and streamline app delivery developers started using the same approach as on desktops: compile & link. In relation to a web application compilation usually means transpiling, while linking means bundling.

Same goes for libraries and other packages that web applications depend on and install from registries like npm. But the actual code in these registries is almost always exists in a form of the old ES5. It is harder to read and debug such code, it may run worse on modern engines, and it will be down compiled one more time during the app build process.

Publishing ES5 code isn't that necessary anymore and may  be avoided. An app could rely on the code in it's original form while providing better efficiency, dead code elimination, and easier debugging experience.

Babel became a *de facto* tool for down compiling JavaScript code to older versions and could be used as an integration point. Combining it with ECMAScript Modules and staged JavaScript development process governed by TC39 group it is possible to define a set of rules for how to publish and consume packages in their original form.

`Raw Module Specification` or `RMS` does exactly that. It is a convention for modern JavaScript packages and modules aiming to avoid excess code recompilation and deoptimization, retaining code readability and ease of debugging.

## Specification

### Package requirements

* Package *MUST* follow Node.js ESM package format and have the `module` type in its `package.json`.
* Package *MUST* contain valid ESM modules.
* Package *MUST NOT* contain any code using features unsupported in the latest stable `@babel/preset-env` or `core-js`. Usually this means simply not using unfinished proposals.
* Upgrading to a newer major Babel version *IS* a breaking change.

### Installing a package

* Install the latest stable `@babel/preset-env` and `core-js`.
* Install the package.
* At build time compile the package with Babel using `@babel/preset-env` preset and load stable polyfills from `core-js` (this could be done in preset options setting `corejs` and `useBuiltIns` props).

### Upgrading the package

* Upgrade `@babel/preset-env` and `core-js` to their latest stable versions.
* Upgrade the package.

{% github the-spyke/rms no-readme %}

If you're interested in this approach and want to help with developing and improving the specification, please join the discussion here or open an issue on GitHub.

_\* Photo by [Kelli McClintock](https://unsplash.com/@kelli_mcclintock?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText) on [Unsplash](https://unsplash.com/s/photos/box?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText)_
VSCode .NET Interactive Notebooks
Tags: machinelearning, dotnet, vscode, notebooks
Published: 2020-11-30 14:18:06

---
title: VSCode .NET Interactive Notebooks
published: true
date: 
tags: machinelearning, dotnet, vscode, notebooks
canonical_url: https://www.macivortech.com/blog/dotnet-interactive-notebooks
---

# VSCode .NET Interactive Notebooks

 ![The ML.NET logo with a robot face next to it.](https://www.macivortech.com/heroes/robotmlnet-yes.png)

## Where Jupyter Notebooks Falls Short

Do you love intellisense? I do.

Which is why working in Jupyter Notebooks can be so frustrating. Part of the benefits of a strongly typed language is to enable tooling that can make us more efficient developers.

## VS Code Extension

Well, lucky for us the folks who develop .NET Interactive love and support us. They have created an extension for VSCode called [.NET Interactive Notebooks](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.dotnet-interactive-vscode)

Now before you go and download this extension be aware that it is in _preview_ and only will work with [Visual Studio Code Insiders](https://code.visualstudio.com/insiders/). This is just a fancy way of saying that it's in active development and stuff will be broken.

That said, lets take a look at how well it works at the moment.

### The Setup Experience

In order to get Visual Studio Code to set everything up properly you'll need to attempt to open a .ipynb file.

You can use the one from my gist if you don't have another one handy:


{% gist https://gist.github.com/RobotOptimist/1bfd719dc621af45a0e633ffa7ecb9ec file=ml_net_simple_regression.ipynb %}

You'll be prompted to install the Python extension. Also, if you had the .ipynb file open when Python installed then you may need to close and reopen it. VSCode will also handle installing .NET Interactive in the background. In fact, VSCode is doing so much for me automatically it was a pretty nice experience to get setup.

Once everything is setup you should see the notebook render properly:

 ![A screenshot of an interactive notebook.](https://www.macivortech.com/screen-shots/ipynb_in_vscode.png) 

So, that's a fairly friendlier experience than Jupyter Notebooks - but do I get my intellisense?!

The answer is... I do!

 ![A screenshot of an interactive notebook.](https://www.macivortech.com/screen-shots/intellisense_yay.png) 

So I know how _I'll_ be writing my .NET notebooks from now on!

But if you still prefer Jupyter Notebooks with .NET then [here is the guide to get set up with that too.](https://www.macivortech.com/blog/get-set-up-with-dotnet-and-jupyter-notebooks)
Nucu Car Devlog: 0x03 – Android
Tags: dotnet, android, python, raspberrypi
Published: 2020-11-30 14:12:48

---
title: Nucu Car Devlog: 0x03 – Android
published: true
description: NucuCar is a .Net Core IoT application for environment monitoring and home automation on Raspberry Pi. 
tags: dotnet, android, python, raspberrypi
cover_image: https://dnutiu.files.wordpress.com/2020/11/image.png
---

Hello everyone!

I’ve been working lately on my little project involving Raspberry Pi and .NET, during my free time. Now, I’ve introduced a new technology, Android!

The project needed a front-end and It took me a long time to decide how to implement it and what technology to use.

I was conflicting between a cross platform desktop application or a web application. I initially thought Electron would have been a great choice since it covers both, but it doesn’t work out of the box with gRPC and I needed some proxies which complicated the things on the backend, not to mention JavaScript is horrible in every imaginable way.

Luckily for me, I started dabbing in Android and somehow I manage to get a simple activity up which reads the data from the NucuCar.Sensors component.

![android_activity](https://dnutiu.files.wordpress.com/2020/11/image-2.png)

It connects to it via gRPC directly. I didn’t expect that setting up gRPC on the Android would be so easy to be honest, you can literally just follow the gRPC tutorial for Java and everything works.

Getting that to work got me motivated and I’ve fixed some bugs in the NucuCar.Telemetry component. This made it possible for NucuCar.Sensors to run for four straight days, non-stop without crashing, it’s still running at this moment.

![systemd_service](https://dnutiu.files.wordpress.com/2020/11/image.png)

The component reports sensor reading to Firestore every one minute, since there are 24h in a day it reports around 1.4K readings a day.

![firebase_console](https://dnutiu.files.wordpress.com/2020/11/image-1.png)

At this point I’m pretty proud of this project, I wrote a simple Python script to plot the Temperature, Humidity and VOC resistance from my apartment, for the last 3 days:

![temperature_plot](https://dnutiu.files.wordpress.com/2020/11/temperature_plot.png)

![humidity_plot](https://dnutiu.files.wordpress.com/2020/11/humidity_plot.png)

![voc_plot](https://dnutiu.files.wordpress.com/2020/11/voc_plot.png)

As you can see the spikes on 2020-11-28 12:00 indicate that I’ve opened the windows and let some fresh air come into the apartment. The temperature and the humidity dropped while VOC resistance rises. The higher the VOC value the better the air quality.

This project is open-source and it can be found on my Github profile.

Thanks for reading!
Where to go for icons -redux
Tags: ux, design, top7
Published: 2020-11-30 13:51:26

Inspired by this post （https://dev.to/jolouie7/my-favorite-place-to-look-for-icons-5dh) I felt you should all really be informed about The Noun Project. If you don’t already - TNP is a repository of thousands of custom, hand crafted icons in SVG/PNG format that can completely transform a design. 

If you don’t already know it, check out it out. It’s better than anything you’ve ever used:  https://www.thenounproject.com/
Week 1 Day 1, Project 1
Published: 2020-11-30 13:49:01

I admit I did not do as much as I would like. I have set up the files, that's about it. Haven't even got a video input running. :) It's the first step and that's the important bit for me. I've got till the end of the week to complete the project. 

I deleted the branch after I merged the changes, I guess I'll keep it for the next days. It's a good map of progress.

[Link to Project](https://github.com/Cijin/project-we)
Why Salesforce is a platform to improve customer relationships?
Tags: crm, salesforce
Published: 2020-11-30 13:46:06

It is inevitable that most organizations will use effective Salesforce techniques, as well as custom tools, that are built on the Salesforce platform to provide better sales opportunities and stay ahead of the market. This certainly makes [Salesforce](https://www.cloudanalogy.com/) an invaluable and enduring tool for any business to increase sales, and this is the main reason why Salesforce certification is incredibly necessary to better take advantage of the IT opportunities that present themselves.

A company using [Salesforce services](https://www.cloudanalogy.com/) is already rated as one of the most loved industries with enhanced CRM, and not everyone knows the other vital areas in which they can help the company, which is obviously the media. social and software implementation, which is cloud-oriented. The sales cloud in Salesforce is one of the best services available, providing the business with secure access to their data. Another exchange of this data becomes easier and more convenient.

Today, Salesforce is not only limited to CRM, but it helps customers to have better content, better workflow, mobile applications and all the technical support they need, making it a must-have tool for any company that seek to become excellent in the market in a short time.

**-> Administrators:** Installation and configuration of Salesforce and its software can follow a basic and advanced administrator registration.

**-> Deployment experts:** Deploying cloud-based solutions can improve application design and construction, increasing productivity while effectively managing data and designing analytics to perform measurements. Helps distinguish between sales cloud and service cloud consultant credentials when used in design solutions using cases, portals, and information.

**-> Developers:** Building client applications with ADE platforms to create data models, logic, security, user interface, reports, and dashboards can track basic and advanced developer credentials.

**-> Architects:** They can help identify system architects evaluating the Salesforce customer environment and design a secure, high-performance platform. They can provide technical solutions to all business needs and have the ability to lead design and implementation to completion.
Common Mistakes to Avoid in Competitive Programming 👇
Tags: devops, productivity, webdev
Published: 2020-11-30 13:44:53


- Focusing too much on the programming language
- All practicing, No learning
- All learning, No practice
- Only participating in contests
- Not participating in contests
- Solving random questions
- Giving up

You need to learn, practice, and participate in contests consistently and focus on gradual improvement.
How do you structure your React projects?
Tags: discuss, watercooler, react
Published: 2020-11-30 13:34:12

I don't really have a structure when it comes to my projects. I guess it doesn't really matter as long as I am the only one working on it. 

I usually start by putting everything in 1 file. When I feel like it gets too big, I create a second file. When I get too many files, I create folders like "assets" for images or "utils" for reusable functions.

This is what [my current project](https://www.cow-pilot.io) looks like.

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

How do you guys organise your projects? Any tips for a self-taught noob like me? :)
Covid-19 and Modern Education 
Published: 2020-11-30 13:19:45

  The COVID-19 pandemic has affected all means of society as well as education. To keep running things smoothly,
educational institutions have quickly adapted to this situation. That resulted in a sudden shift of teaching via online platforms. At this time, many digital learning platform providers came forward and offered their support and sometimes even for free.
The pandemic has created a market in ed-tech. Many platforms have gained their value during this pandemic.
So many platforms like Qwiklabs, Coursera offered their services for free helping students for gaining and spreading
knowledge. So many startups were introduced during this situation. Many of them are focusing on online learning. And also
many students and professionals have updated their knowledge and acquired new skills during this period.
Apart from these, a new dimension of learning is defined by shifting through online learning. Advantages like the easy and
simple interface, personalized learning journeys, personal mentors, 24*7 chat support, and doubt solving systems. Learning
new skills has improved academic results and will continue the expansion of ed-tech companies. A large number of today's
"free" users will start to pay for these courses later.
According to reports, India has over 330 million K-12 students—75 million of whom adopted supplementary
education. Our estimate indicates another 30-40 million students don’t have access to quality supplementary education
despite their ability to afford it. Consequently, the supplementary education market size is about $15 billion with
less than 5% digital penetration. So, there is significant headroom for ed-tech solutions to grow and covid-19 has
only expedited its adoption.
Another problem in this scenario is the network connectivity issues faced by students and the teachers. Most of the
students can't attend online classes without interruption. Online video calling platforms like Google Meet,
Microsoft Teams, Zoom, etc are widely used in these situations. Parents are compelled for buying gadgets like phones, tabs, etc
to run their children's education smoothly. But many families can't afford these gadgets in these difficult times.
So many employees lost their job during this lockdown. So that they are struggling to meet their two sides of the rope.
In this situation, affording these are if great burden for the families. So many charitable trusts are helping them in these
times which is a great relief.
So we can stand together and fight against this pandemic.