teleren/devto huggingface dataset:
Fall Conferences
Tags: codeland
Published: 2021-09-22 14:05:11

It's fall and my calendar is busy next few weeks. Music City Tech was last week. Codeland is this week and PyGotham is late next week. All virtual so I can attend from my office.

Music City Tech was a three day event with multiple tracks. Music City Code, Music City Agile, and Music City Data. Day one was all Keynotes the nest two days were talks and panel discussions. 

Take aways be assertive but not aggressive.

Mob Programming is something I need to learn more about. Mike shared a linked to a more in depth [speech he did on the topic.](https://www.youtube.com/watch?v=jAV5K0LBIXU)

I'm looking forward to Codeland tomorrow. It was one of the better virtual events in 2020.
Update the Docker installation directory (Ubuntu/Debian)
Tags: docker, tutorial, ubuntu, systems
Published: 2021-09-22 14:01:15

## Argh, my "/" partition is almost full

You may already have been in this situation where you setup Docker using the classic tutorial and thus use the directory **/var/lib/docker** as Docker root directory, where all containers, images and so on are stored. This directory gets quickly filled, and depending on your server structure, you may have a secondary partition (like **/data**) with plenty of disk space available. 
Let's how to migrate this directory properly.

## How to move Docker data ?

The process can last few minutes depending on the size of the Docker directory, but it won't last too much time. Just remember you need to shutdown Docker during this process.

Note that the following commands may be require **sudo** privileges.

First, we need to **stop** all your containers and the Docker service. 

    $> systemctl stop docker

To make sure the Docker daemon is stopped, the following command should display an empty result :

    $> ps aux | grep -i docker | grep -v grep
    
Then, modify with your favorite text editor the systemd **/lib/systemd/system/docker.service** script that is launched during the sytem startup :

    $> systemctl edit --full docker

Locate the following line:

    ExecStart=/usr/bin/docker daemon -H fd://

Edit that line to add the **-g** option with the path of the new directory.

    ExecStart=/usr/bin/docker daemon -g /new/path/docker -H fd://

Replace **/new/path/docker** with the absolute path of the destination file that you wish. Save the file, then restart now the Docker demon:

    $> systemctl daemon-reload

Then, you have to create the new Docker directory and copy the current Docker directory to the new one with the **rsync** command:

    $> mkdir /new/path/docker
    $> rsync -aqxP /var/lib/docker/ /new/path/docker

You may now start the Docker demon:

    $> systemctl start docker

Now you can check that the Docker demon is launched with the new **-g** option:

    $> ps aux | grep -i docker | grep -v grep
    root      2095  0.2  0.4 664472 36176 ?        Ssl  18:14   0:00 /usr/bin/docker daemon -g  /new/path/docker -H fd://
    root      2100  0.0  0.1 360300 10444 ?        Ssl  18:14   0:00 docker-containerd -l /var/run/docker/libcontainerd/docker-containerd.soc

You can also execute the **docker images** ands **docker ps -a** commands to check that all your Docker data is still there.

Once everything is ok, you can clean the old directory.

    $> rm -rf /var/lib/docker

 Thats it ! 🚀
React Native Mobile Apps, Working With React Navigation Supabase Create Account, And React Hook Form
Tags: reactnative, react, supabase, reacthookform
Published: 2021-09-22 13:40:51

{% youtube lu1JzyBfSOQ %}

In this [React Native](https://reactnative.dev/) Tutorial video, we add a form for creating an account with [Supabase](https://supabase.io/) and use [React Hook Form](https://react-hook-form.com/) to manage the form and yup for form validation. We use the form data to call the Supabase signUp function to create the user. After that, we take the information from the form and save the user profile information

## Video Series - React Native Refresher
------------------------------------------------------------
Part 1 - Intro to Working with React-Navigation - https://youtu.be/uqH00SEmKxg
Part 2 - React Navigation Drawer Navigator And Authentication Flow - https://youtu.be/5e67b0PBcn4
Part 3 - Authentication And Supabase Login - https://youtu.be/aBuB-Q6vHDE
Part 4 - Authentication, Supabase, And React Hook Form - https://youtu.be/ZU3lXTm9nVY
Part 5 - Supabase Create Account, And React Hook Form - https://youtu.be/lu1JzyBfSOQ
Part 6 - Expo Camera, Supabase Buckets and Image Upload - https://youtu.be/RmlekGDv8RU

[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/W7W31U7HM)
How to extract your Facebook Messenger messages from a conversation
Tags: facebook, messenger
Published: 2021-09-22 13:36:29

---
title: How to extract your Facebook Messenger messages from a conversation
published: true
description: 
tags: facebook, messenger
//cover_image: https://direct_url_to_image.jpg
---

If you communicate with people (or bots) over [FB messenger](https://messenger.com), you may find it useful to save a copy of your messages. You can do this by copy/pasting, but the output will be littered with "You sent", scrolling up is a pain, and you can't filter for only what *you* said.

Fortunately, Facebook provides [data exports](https://www.facebook.com/help/212802592074644) in JSON format, which we can then filter easily with the [jq](https://stedolan.github.io/jq/) utility.

Go ahead, Request a Copy in the date range you care about, and select only "Messages":

![Facebook 'Download your information' screenshot](https://i.imgur.com/XXBIbGi.png)


Then extract from the archive the file `messages/inbox/<your_friend>/message_1.json`. Once you have that file, here's how to filter all your messages, sorted chronologically by time:

```
cat message_1.json | jq -rc 'sort_by(.timestamp_ms) | .[] | select(.sender_name | contains("Dascalescu")) | .content'
```

<sub>(of course, replace "Dascalescu" with your name)</sub>

The `-r` flag unquotes the strings. Useful to unescape `"`s.

That's it!

## Known issues

Characters are output as raw bytes. This will break non-ASCII characters and emojis. Check for solutions [on StackOVerflow](https://stackoverflow.com/questions/69285688/convert-emoji-unicode-byte-sequences-to-unicode-characters-with-jq).
React Native Mobile Apps, Working With React Navigation Auth, Supabase, And React Hook Form
Tags: reactnative, react, supabase, reacthookform
Published: 2021-09-22 13:36:03

{% youtube ZU3lXTm9nVY %}

In this [React Native](https://reactnative.dev/) Tutorial video we add a form for login and use [React Hook Form](https://react-hook-form.com/) to manage the form and yup for form validation. We use the form data to call the [Supabase](https://supabase.io/) signIn function to authenticate the user. 

There are a few special libraries from npm that are used to make all this work and we cover them all in the video. Specifically we needed an [AsyncStorage](https://www.npmjs.com/package/@react-native-async-storage/async-storage) library and [dotEnv](https://www.npmjs.com/package/react-native-dotenv), a library to manage local environment variable for the application

Join me on my journey of refreshing my memory with React Native and building mobile applications

## Video Series - React Native Refresher
------------------------------------------------------------
Part 1 - Intro to Working with React-Navigation - https://youtu.be/uqH00SEmKxg
Part 2 - React Navigation Drawer Navigator And Authentication Flow - https://youtu.be/5e67b0PBcn4
Part 3 - Authentication And Supabase Login - https://youtu.be/aBuB-Q6vHDE
Part 4 - Authentication, Supabase, And React Hook Form - https://youtu.be/ZU3lXTm9nVY
Part 5 - Supabase Create Account, And React Hook Form - https://youtu.be/lu1JzyBfSOQ
Part 6 - Expo Camera, Supabase Buckets and Image Upload - https://youtu.be/RmlekGDv8RU

[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/W7W31U7HM)
Arrow Function is not Replacement For function(){}
Tags: javascript, discuss
Published: 2021-09-22 13:06:13

I have seen so many low effort articles that pretend to teach you about arrow functions and then they end up just show you how function was written before ES6 and then glorified new arrow function. 
``` 
function(x) { return x }  // regarded as old 
x => x // hip new function in ES6
```
It is so frustrating, because you can get wrong impression that there is no difference in how they work.

I am making this post just so people are aware that there are more differences between these two functions and they should take deeper look into documentation. 

[MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions)
Setting up drupal9 multi-site with DDEV
Tags: drupal, ddev, drupalmultisite, drupal9
Published: 2021-09-22 13:04:34

Setting up a multi-site architecture can sound overwhelming and scary😱 with all the database setup and creating vhost for each site... it can become painful and daunting. But here is how you can setup a drupal 9 multi-site with single database using prefixes within 15 min(30 mins tops I swear!😬). So let's dive into it!
## Pre-requisites:
- [DDEV](https://ddev.readthedocs.io/en/latest/)

## Steps:
#### 1. Make a new folder for your project and in your folder run:
 ```
 ddev config --project-type=drupal9 --docroot=web --create-docroot
 ddev composer create drupal/recommended-project
 ddev composer require drush/drush
 ddev restart
 ```
#### 2. Create `.ddev/config.multisite.yaml` with following (example) content:
   ```yml
   additional_hostnames:
  - subsite1
  - subsite2
  - subsite3
  ```
This file contains list of URLs for our subsites which is equivalent to setting up vhost for each site.
#### 3. Create folders for subsites in your `sites` directory
   ```
   mkdir subsite{1..3}
   ```
#### 4. Copy `examples.sites.php` to `sites.php` and add entries for subsites  in your `sites.php` file:
   ```
   $sites['subsite1.ddev.site'] = 'subsite1';
   $sites['subsite2.ddev.site'] = 'subsite2';
   $sites['subsite3.ddev.site'] = 'subsite3';
   ```
#### 5. DDEV creates `settings.php` in `default` directory so copy this to your subsites
### 6. Since we are using single DB with prefixes add entry for db prefix in each of your subsite's `settings.php` after the line to import `settings.ddev.php`. Like this:
   ```php
   // Automatically generated include for settings managed by ddev.
if (file_exists($app_root  . '/sites/default/settings.ddev.php') && getenv('IS_DDEV_PROJECT') == 'true') {
  include $app_root . '/sites/default/settings.ddev.php';
}
$databases['default']['default']['prefix'] = 'subsite1';
  ```
Note: By default ddev uses `__DIR__ . '/settings.ddev.php'` since it assumes `settings.ddev.php` is in the same directory, but since that is not the case with our subsites folders, we are using  `$app_root  . '/sites/default/settings.ddev.php'` instead.
#### 7. Run `ddev restart` so it creates urls for our subsites.
#### 8. Go to the respective URL on browser and install the site.
*Note*: Install site using browser instead of drush because drush will ask to drop and recreate the database for each site.

And We are all done!!!

In case you want to add more sites just repeat 2-8 for your new site. And get it up and running in no time.

In case you want to use multiste with multiple databse refer to this [example](https://github.com/drud/ddev-contrib/tree/master/recipes/drupal8-multisite).

Remember we are doing everything here inside a docker container so if you want to check your databases for example, you will need to use `ddev mysql` instead of just `mysql` and also the credentials will be the one which are created by DDEV rather than what you have on your system.

Let me know in the comments if you found this helpful! KThnxByee!👋🏼
Traps that Aspiring Developers have to be careful of
Tags: codenewbie, motivation, beginners
Published: 2021-09-22 13:03:11

Some learning to code traps that I’ve seen aspiring developers fall into (including myself).

## Never finishing anything
A friend of mine, [Corey McCarty](https://www.linkedin.com/in/coreydmccarty/), talked about the trap of never finishing anything. I want to quote his words “There is a certain amount of work that you won't understand until you finish a project. There's even more that you will learn by 'finishing' a project and having to come back and make changes after you've forgotten how it works.” I can’t stress how true this is.

## Giving up to soon
A trap that I commonly see is the attitude of “I came, I tried, I failed, I give up”. Coding is all about “learn, fail, learn, fail, learn, partial success, fail, fail, Aha moment, learn”, then wash and repeat. You have to have resilience and grit to get to the point of being able to achieve what you dream of.

## Not having a developer's growth mindset
A second trap that I’ve seen is aspiring developers barely dipping their toe into the tech universe. The developers who I’ve seen thrive are the ones who did a head first dive off the top diving board into the tech industry. They are swimming in learning, exposure, meeting new people, volunteering for experiences, and building things. They’re all in as much as they can handle and then some. I’m not saying to give up your family and friends, but I’m advocating adapting your lifestyle and habits to what you are prioritizing. You sow what you reap. 

## Not learning how to build for others
A trap that I fell into was building solely for myself. While this is a good thing most of the time, building for others to use/consume is utilizing a totally different and valuable skill set. The flip side of this trap is depending on others' appreciation of your work to be the only measure of value or success.
LIVE: Otimizando aplicações .NET com MessagePack.
Tags: csharp, dotnet, messagepack, braziliandevs
Published: 2021-09-22 13:00:46

Olá!

Neste post trago o link para a gravação da live do dia 21/09 sobre Otimização de aplicações .NET com MessagePack no canal da [EmergingCode](https://www.youtube.com/c/EmergingCode), além do material de apoio e algumas referências e o código das demos.

Antes de mais nada, gostaria de agradecer a todos que compareceram e curtiram a live. Foi um prazer enorme participar e contar com a presença de todos!

Para quem não viu, ou quiser rever, [clique aqui](https://www.youtube.com/watch?v=p6DCaVEADWA) para assistir à gravação.

O material de apoio está disponível [neste link](https://1drv.ms/p/s!AqopaC68Cr7ugYorgPksmf3GPJiimg?e=sXnmbn).

###Referências:
* Site oficial do [MessagePack](https://msgpack.org)
* Biblioteca [Nuget](https://www.nuget.org/packages/MessagePack/) para C#
* [Benchmark](https://medium.com/@hugovs/the-need-for-speed-experimenting-with-message-serialization-93d7562b16e4) de serializadores com Python (via [Hugo Vieira](https://medium.com/@hugovs))

###Demos:
* [Benchmark](https://github.com/marcioalthmann/dotnet-serialization-benchmark) de serializadores com C# (via [Márcio Althmann](https://www.linkedin.com/in/marcioalthmann/))
* Comunicação via [RabbitMQ](https://github.com/wsantosdev/lab-messagepack-rabbit-mq)
* Simulador de [negociação](https://github.com/wsantosdev/lab-msgpack2) de ações

No mais, nos vemos em breve. Mais uma vez, muito obrigado!

Até mais!
Bootstrap 5 Neon Buttons
Tags: bootstrap, css, html, webdev
Published: 2021-09-22 12:54:15

Neon Buttons are like light animation effects which are made using box-shadow css properties. So here we try to make this neon light animation in bootstrap 5 button components.

In this buttons class, we customize with css and also used hover effects. To show light animation effects which is look like neon buttons.

Make it yours now by using it, downloading it, and please share it. we will design more elements for you.

[Source code](https://w3hubs.com/bootstrap-5-neon-buttons/)
Let's try C++20 | std::cmp_* functions
Tags: cpp, programming, todayilearned
Published: 2021-09-22 12:51:48


Today, I have discovered a very simple (but yet very efficient and useful) feature from C++20: [the `std::cmp_*` functions](https://en.cppreference.com/w/cpp/utility/intcmp). They allow to compare 2 integers, which can have different signedness, without getting bitten by implicit conversions.

Let's have look at this piece of code:

```cpp
#include <iostream>

int main()
{
    int a = -6;
    unsigned int b = 3;
    
    if (a < b) {
        std::cout << "OK: a is lower than b\n";
    } else {
        std::cout << "Oopsi!\n";
    }
}
```

Yes, you've guessed right: it prints "_Oopsi!_".

Why?

[Rule RSPEC-6214 from Sonar](https://rules.sonarsource.com/cpp/tag/bad-practice/RSPEC-6214) explains the issue very well:

> Comparison between signed and unsigned integers is dangerous because it produces counterintuitive results outside of their common range of values.
> 
> When a signed integer is compared to an unsigned one, the former might be converted to unsigned. The conversion preserves the two’s-complement bit pattern of the signed value that often corresponds to a large unsigned result. For example, 2U < -1 is true.
>
>C++20 introduced remedy to this common pitfall: a family of std::cmp_* functions defined in the <utility> header. These functions correctly handle negative numbers and lossy integer conversion. For example, std::cmp_less(2U, -1) is false.
>
>This rule reports comparisons between signed and unsigned integers that involve negative numbers.

Let's try:

```cpp
#include <iostream>
#include <utility>

int main()
{
    int a = -6;
    unsigned int b = 3;
    
    if (std::cmp_less(a, b)) {
        std::cout << "OK: a is lower than b\n";
    } else {
        std::cout << "Oopsi!\n";
    }
}
```

And now the code prints "_OK: a is lower than b_" 😁

Note that your compiler can emits warnings about conversions like this. With GCC, the option `-Wall` is enough:

```
<source>: In function 'int main()':
<source>:10:11: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
   10 |     if (a == b) {
      |         ~~^~~~
```

The problem is the same in C but `-Wall` doesn't add `-Wsign-compare` for C, only in C++.

PS: [my first article](https://dev.to/pgradot/les-joies-des-conversions-d-entiers-en-c-et-c-51d2) on dev.to was about funny integers conversions (but you must speak French to read it 😅)
My one-year work experience as a full-stack developer
Tags: softwaredevelopment, programmer
Published: 2021-09-22 12:50:31


scanrail/iStock

Konnichiwa!! This week on 5 of August 2021 I have completed my one year of working experience as a full-stack software developer in a top fortune one company. The experience was a roller-coaster which I would like to share with you all. So before getting a full-time offer from Walmart I had got a winter internship offer for 6 months in my final B.Tech 4th year.

A little background on me, I have completed my Bachelors in Information Technology. So coming back to my work experience, Yeah as I was saying I got cooperate experience as an intern and it was wonderful. Luckily I worked from the office for 2 months before the Covid outbreak. This leads to my full time at Walmart. I loved the working environment, collaboration, and cooperation of the teammates. I learn a lot from my seniors, one of the things was “Debugging”. Initially, when I get to encounter bugs or errors which I’m not able to figure out by myself, my mentors taught me to do debugging. That time I was doing console.log() for debugging. Well, I still do. When I was an intern I had no other responsibility like taking care of the development pipeline(CI/CD). I just had to learn from doing my project which was a full-stack web app in MEAN Stack.

Now as a full-time associate I got to learn about CI/CD which explains to me the complete process of development. I got to learn Scrums, which is used by most of the company for estimating their time and efficiency on any product/project. Currently, I’m having work from home experience, but soon I want to go back to the office and play some ping pong or foosball.

It is not necessary for you will build something from scratch in your work. You may have to work on adding a feature to the existing application /product. Recently I’m working on an existing project which requires understanding the domain, other’s code, and logic, which teaches a lot. One of them is always to write clean code, your code is not for you to understand it’s for others. Yes, you heard right It’s for others to understand and add new codes or components if needed.

I got a chance to be a mentor to one intern in my team. Being in the shoe of a mentor was not easy for me. I have to know what my mentee is doing, guiding her. I made sure she will learn from me as I had learned from my mentor. When I was a mentee I learned first to google the error on Stack overflow and then run to your mentor, by googling the error you will find more than one solution which helps you to learn about that specific error, and then you are to solve it in future occurrences.

Well, these are the few experiences I have shared for now from a bundle, with that said Mata ne!
Everything About TYPO3 PWA (Progressive Web Application)
Published: 2021-09-22 12:50:01

Are you thinking and planning to integrate Modern TYPO3 PWA to your TYPO3 website? If yes, then Congratulations! In this article, you will learn the basics of TYPO3 PWA and TYPO3 Headless CMS. Keep reading!

PWA is one of the most modern web technologies! Also, it’s getting more attention from the people who believe in keeping their business websites updated. Fortunately, our beloved TYPO3 community also stays up-to-date with modern technologies like TYPO3 Headless CMS, TYPO3 PWA, etc. Are you excited to know in-depth about buzzing words like TYPO3 PWA, TYPO3 Headless, TYPO3 APIs etc? Let’s go!

At T3Terminal and NITSAN; We wrote some of the articles on TYPO3 PWA and TYPO3 Headless CMS. I recommend reading exciting articles too.

Trending: What Is TYPO3 Headless CMS?, https://t3terminal.com/blog/typo3-headless-cms/

How to use TYPO3 + ReactJS [2021], https://t3terminal.com/blog/typo3-reactjs/

All About Progressive Web Apps (PWA) and its implementation in TYPO3, https://www.nitsan.in/blog/typo3-pwa/

Headless TYPO3: What It Is and How to Use It?, https://www.nitsan.in/blog/typo3-headless/

TYPO3 PWA ->

What is a Progressive Web App?
What are the Features and Benefits of TYPO3 PWA?
When is a good time to start TYPO3 PWA? NOW!
3 Main Block Building of TYPO3 PWA
Best Practice to Add Favicons & Manifest.json in TYPO3
Introduce TYPO3 PWA Initiative
Two Different Ways to Setup TYPO3 PWA
Closure!

Want to know more? Take a look at whole blog here, https://t3terminal.com/blog/typo3-pwa/
Mudança de Privacidade Chegando
Tags: android, security, news
Published: 2021-09-22 12:41:52

O Google estará liberando nos próximos meses uma melhoria nos recursos de privacidade. Esse recurso terá como algo todas aquelas aplicações mais antigas, esquecidas e sem uso, que possuam acesso a dados sensíveis.
Entre os recursos que serão "perdidos" para essas apps estão envio de SMS, sensores e acesso à lista de contatos.
"O recurso será habilitade por padrão em apps rodando Android 11 (API level 30) ou superior. Contudo, usuários poderão habilitar auto-reset de permissões para apps rodando com API levels 23 a 29", disse o Google.

Esse novo recurso visa aumentar ainda mais a segurança digital, prevenindo que apps antigas possam se aproveitar desses acessos concedidos e, com alguma atualização, rodar algum código malicioso ou abrir portas para tal. 

A atualização deve começar a sair para o público geral a partir de Dezembro, mas deve demorar até o final de Março/2022 para atingir todo o público esperado.