teleren/devto huggingface dataset:
La WEB 3 se construye en TypeScript
Tags: web3, typescript, spanish
Published: 2022-02-20 03:47:22

---
title: La WEB 3 se construye en TypeScript
published: true
description: Impartí la charla "La WEB 3 se construye en TypeScript" en el evento TypeScript Day de la comunidad de Angular Bolivia. 
tags: web3, typescript, spanish 
//cover_image: https://arepa.s3.amazonaws.com/web3-typescript.png
canonical_url: https://gndx.dev/blog/web3-se-construye-con-typescript
---


Fui invitado a impartir la charla "**La WEB 3 se construye en TypeScript**" en el evento TypeScript Day de la comunidad de Angular Bolivia.

Mi experiencia en el tema de la **Web3** inicia en agosto del 2021 cuando decido enfocarme en entender a detalle las tecnologías detrás del Blockchain, Las criptomonedas y entender los conceptos que son fundamentales para comprenderles y poder un día no muy lejano enseñar a implementar estas tecnologías.

Quiero compartirte parte de mi experiencia y lo que he aprendido, cave mencionar que en ningún momento estás obligado a comprar ninguna criptomoneda, aquí no hablaremos de inversiones, ni de obtener beneficios monetarios, los temas que trato de enseñar o mostrar con mi experiencia es para que puedas crear tu propia opinión y tengas un camino que seguir.

Es importante entender donde nace todo, es importante entender la historia y la motivación de quienes fueron visionarios en proponer estas tecnologías, como arranco todo, quien es **Satoshi Nakamoto** y porque hoy en día no sabemos de su paradero, que significa implementar tecnologías blockchain y las matemáticas detrás de la criptografía. Estas preguntas te llevarán al camino correcto, al camino que te permitirá entender hacia donde vamos.

Mi primer paso fue leer las propuestas iniciales mejor conocidas como "White Paper" donde podemos entender cada particularidad y entender el porqué. **Bitcoin: Un Sistema de Efectivo Electrónico Usuario-a-Usuario** (ES)

Ahora llego el momento de entender algunas otras particularidades como los diferentes proyectos existentes entre ellos Ethereum y Solana.

Esto me permitió entender que lo que hacemos en la considerada **Web 2.0** es lo mismo que podemos hacer en la Web3, seguimos utilizando las mismas tecnologías como React, Desplegar en servidores como Vercel, pero debemos de ponerle atención a nuevos conceptos como la tecnología detrás del blockchain, descentralización, utilizar nuevos protocolos como iPFS (**InterPlanetary File System**) aprender a trabajar con la EVM (**Ethereum Virtual Machine**) para programar nuestros contratos inteligentes, integrar protocolos JSON-RPC y utilizar las librerías como **Web3.js**, **Ethers.js** o utilizar herramientas de desarrollo como Hardhat o truffle.

Una de mis mayores sorpresas es que la mayoría de las herramientas para implementar en nuestros desarrollos usan **TypeScript**, es por esto que la Web3 se está construyendo con TS.

Quiero dejarte mi video donde explico un poco a detalle mi aprendizaje en **Web3** y te recomiendo las principales herramientas para entender estos nuevos conceptos.

{% youtube bkkakCbOoZg %}
Day 2/100, 100 Days of Code
Tags: javascript, beginners, codenewbie, devjournal
Published: 2022-02-20 03:17:25

Today I learned more on **for** loops and **while** loops. I created a small project for 'whale speak' which uses arrays. I converted a simple string into all vowels using for loops to iterate though the arrays.

I understood most of it, but tend to still get lost on very basic concepts. Can be frustrating but the curiosity is still enough for me to keep going.
what do you wish you knew about kubernetes? 🤔 some getting started resources
Tags: kubernetes, beginners, discuss, cloud
Published: 2022-02-20 03:15:11

_**Learning tech is constant and a skill. If you have any q at all, let's see if we can get some a's!**_

I recall when I was trying to learn kubernetes, it took a few tries to grasp concepts. For any newbies interested in trying out kubernetes, need an explanation, or want a good metaphor, leave a comment below! I (or anyone!) can try to explain it :)
Personally for me, being a developer first, learning k8 was great with examples and being hands on. Here are _some_ resources if you are interested in getting started:
* [Kubernetes in 100s by Fireship.io](https://www.youtube.com/watch?v=PziYflu8cB8): a digestable/quick intro to k8s
* [Kubernetes docs](https://kubernetes.io/docs/home/) are well written, and you can't go wrong with them
* [Learn kubernetes the hard way](https://github.com/kelseyhightower/kubernetes-the-hard-way) is a tutorial that you can run through. It's well written and descriptive.
* [minikube](https://minikube.sigs.k8s.io/docs/start/) is a tool for creating local k8 clusters. It's a great intro to actually trying out `kubectl`



this was everyone once upon a time I promise
![learning k8s](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n113d3by9z14dqhpdeqm.png)
twitter: [@christineskim_](https://twitter.com/christineskim_)
What’s new in Xamarin.Forms – XAML
Tags: dotnet, xamarin, xamarinforms, xaml
Published: 2022-02-20 02:59:00

_**The new features of XAML help productivity and thus reduce development time in mobile applications.**_

The Xamarin.Forms team has put the batteries in giving the developer a pleasant experience, and XAML is no exception.

<a href="https://twitter.com/maddymontaquila" target="_blank">Maddy Leger</a> _(Program Manager at Microsoft working on Xamarin.Forms tooling)_ in his video tutorial tells us about many new features that we can use in XAML, these are the most relevant.

{% youtube q7yl95pSjo0 %}

---

## Quick encapsulation of controls

This improvement groups controls using the “Surround With…” option or with the “Ctrl + K, Ctrl + S” shortcut.

---

## XAML Regions

Without a doubt this characteristic fascinates me, in C # it is good practice to separate important parts, contract them or expand them is something that a simple comment does not do, with “XAML Regions” we can reorganize our code and add good practices in the process.

![](https://miro.medium.com/max/1364/0*wtNwarsUzIHqw89v.gif)

## Go To Definition

This option allows you to go directly to an object, it is great to locate styles, binding, etc, that we are using.

![](https://miro.medium.com/max/1364/0*rkau3_OuKNiBa4np.gif)

GitHub Update: https://github.com/danielmonettelli/XF_FoodApp

---

## Conclusions

As you can see, Microsoft continues to take great steps to meet the needs of the Developer of Xamarin.Forms, “productivity” is one of the goals that is taking it very seriously, I look forward to the next updates to come.
Use Hasura, impress your friends.
Tags: node, hasura, api
Published: 2022-02-20 02:02:18

I used [Hasura](https://hasura.io/) to build the backend for [TerraQuest](https://terraquest.com/).  There was simply no other way to create a full featured API in the amount of time I had available.  At the time I was worried that I would pay some sort of a price for the exceptionally fast development turnaround that Hasura offered.

Whenever I try to use a backend offering like Hasura I usually find a showstopper pretty quickly.  From expensive pricing, to vendor lock-in, to a lack of support for spatial queries, they draw you in and then quickly disappoint.  

Hasura has proven to be quite the opposite:
- You can host it yourself or in the cloud.
- If Hasura goes bust or GraphQL ever goes out of style you'll have a well organized database that you can wrap up with something else.
- You have the full power of PostGRES (and PostGIS) with no limitations.
- In exchange for setting up tables in your database, Hasura will gift you a fast and secure API that just works.
- It is easy to extend with [events](https://hasura.io/docs/latest/graphql/core/event-triggers/index.html), [custom actions](https://hasura.io/docs/latest/graphql/core/actions/index.html), or even [other apis](https://hasura.io/docs/latest/graphql/core/remote-schemas/index.html).

Since I will certainly be using Hasura again, I am working on building out some starter projects for Node and .NET.  The Node.js version is coming together and can be found [here](https://github.com/aaronblondeau/hasura_starters/tree/master/node).
Different Java Kotlin in Android Studio
Published: 2022-02-20 01:45:16

onClickListener

Java

```
class ButtonActivity extends Activity {
      protected void onCreate(Bundle saveInstance) {
            Button button = findViewById(R.id.button);
            button.setOnClickListener(new View.OnClickListener() {
                  public void onClick(View view) {
                        System.out.print("Hello World");
                  }
            }
      }
}
```

Kotlin

```
class ButtonActivity : Activity() {
      override fun onCreate(saveInstance: Bundle?) {
            button.setOnClicklistener {
                  print("Hello World")
            }
      }
}
```
Don’t Stop Yourself From Starting
Tags: beginners, starting, thoughts, webdev
Published: 2022-02-20 01:18:52

Have you ever had an *idea*, a *project*, a *concept* **you would like to work on?** And *you never started* it because you thought too long about the how and why? Or *did you procrastinate* until that idea was a clear vision in your mind, time passed, and *you forgot about it* until, years later, someone else was working on a similar project?

*This has happened to me many times...*

Don't beat yourself up, but learn from it: **don't stop yourself from starting!**

![Start Today Not Tomorrow](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y0vphce7w6aen3syd9l1.png)

You will **build something by doing it**. You won't get a clear picture if you don't work on it to refine a more advanced approach. Time is your friend, and little by little, **with** **constant and regular work**, your first draft idea will turn into an evolved project.

Creation takes time. It can take hours, days, weeks, months, years... don't worry, it's your project and **you can** **do it any way you want!** *You will have ups and downs, just like everyone else, and that is part of any process.* Stay positive. Stay committed. **Just believe in yourself!**

Sometimes starting to work on one idea can push you towards another. That's not a problem! It's an evolution and *a mind-building process* that makes your project more advanced than if you had never started it. **Just start.** You will figure out the rest along the way.

Think your idea isn't original enough? Don't be so sure, you might be surprised when it matures! And *don't stop yourself from failing*, the next time you'll be more experienced. **Create by doing, each step is a step closer to success.**

If **you want** to open a new blog, write articles, create a new design, work on a new framework, develop a new application, launch a new website project *or anything else*: **Do It!**


> *You don't have to see the whole staircase, just take the first step.*
― Martin Luther King Jr.
> 


That's what I did today, *writing my very first article*. It's not perfect, but I'm glad I started writing and shared my thoughts with you.

Let's connect on [Twitter](https://twitter.com/cyrezdev).

<small>_Illustrations by Cyril Rezé_</small>
Laravel Eloquent Tutorial - Get only the fields (aka columns) we need from relation.
Tags: laravel, php, webdev, programming
Published: 2022-02-20 01:10:16

Laravel is a great framework to work with, and I use it every day for my 9-5 job. One of the greatest power of Laravel is, it has an ORM (Object Relational Mapping) as default called Eloquent.

I am not going to talk about what is Eloquent ORM, but I would like to just indicate that, it makes your life easier to deal with databases.

Below you can find some simple usages of eloquent;

```
$post = Post::find(1)
// That will run the following query in the database
// select * from posts where id = 1
// You see, it's so easy to use and powerful because we don't need to write a query anymore
```
If you are using relational databases such as MySQL, MariaDB, PostgreSQL and etc, it becomes more powerful because you don't need to write complex join queries anymore.

For example, we want to get a specific post from the posts table but also we want to GET the author of the post as well. The following example, clearly explains that.

```
class Post extends Model {
 ....
 // that will assume that we have author_id column in the posts table
 public function author(): BelongsTo
{ 
   return $this->belongsTo(related: Author::class)
 }
}

 // Since the author relation is defined in Post model, we can load it using following code
$post = Post::with('author')->find(1);
// Now, the post data will have the author data from database
// This is called Eager loading and it is very important learn about it.
// Link: https://laravel.com/docs/9.x/eloquent-relationships#eager-loading
```

Since we used eager loading to get author data with the post, all columns in the author data is loaded. This is not a problem with a small amount of data, but if we get millions of posts, each post will have an author and probably that will run a little bit slower. So, instead of getting all columns in author data, let's get some specific columns.

```
$post = Post::with('author:id, name')->find(1);
// Now, the post data will have the author data from database but only specific columns id and name
// This will make your it more faster to load data
```

In the example above, we have used :id, name, so, only those columns are going to be loaded from the database.

That's all for this tutorial :)

If you like to get more content similar to that, please follow me on Twitter and on my youtube channel.

Twitter: twitter.com/olgunsoftware

Youtube: youtube.com/channel/UCH-xplaz-cmloIUkYspcEhQ
State of JS 2021 Survey Results
Tags: discuss, javascript, webdev, tooling
Published: 2022-02-20 01:05:31


[State of JS 2021 survey results](https://2021.stateofjs.com/en-US/) just came out, looking beautiful as always, now it's a good time to try new shining JavaScripts tools.

A lot happened in 2021. So much in fact that the survey was pushed back all the way to 2022!

I like the idea of [library tier list](https://2021.stateofjs.com/en-US/libraries) like **hero tier list** in many games I played. It will help us make faster decision on which ones to invest but also push lower-tier ones to death faster.

This report is a good place to have a big picture of JavaScript ecosystem. What do you think about the results?
Meu kit de aplicativos para produzir conteúdo
Tags: productivity, braziliandevs
Published: 2022-02-20 00:52:04

## O quê seria um kit de aplicativos para produzir conteúdo?

Seria basicamente um cinto de utilidades, que permite que pessoas criadoras de conteúdo tenham a possibilidade de criar seu conteúdo **em diferentes formatos.**

Com qual programa você iria escrever um artigo? com qual programa você iria editar um vídeo? como você iria criar uma capa ou imagem para representar seu conteúdo?

São essas perguntas que eu irei responder, mas é claro, **mostrando a forma que eu uso.** Cada pessoa criadora de conteúdo tem o seu próprio kit de aplicativos, logo, caso ainda não tenha um, use esse que eu vou mostrar apenas como inspiração.

Inclusive, todos os aplicativos que vou mostrar são gratuitos, e a maioria de código aberto.

## Artigos

Para escrever artigos eu uso o editor de texto [Neovim](https://github.com/neovim/neovim) por conta da personalização que posso fazer dentro do editor, criando atalhos instalando plugins que são úteis para mim, e também pelos modos de edição e inserção de texto que o neovim tem.

Após escrever meu texto no Neovim, eu sempre publico no [Dev.to](https://dev.to/), que na minha opinião, é o melhor site para publicar artigos sobre tecnologia, principalmente porquê eu consigo escrever meu artigo em markdown, e postar ele em markdown no dev.to, que ele será automaticamente processado em HTML.

## Imagens

Para produzir imagens que eu utilizo em artigos, vídeos, posts,etc. eu uso dois programas:

- [**Canva**](https://canva.com): O Canva é ótimo para **compor imagens**, inserindo textos, e gráficos, salvando meus projetos na nuvem e podendo passar para revisão de outras pessoas de uma maneira BEM mais simplificada.

- [**Gimp**](https://www.gimp.org/): Gimp é um programa destinado á **manipular imagens**, com ele, posso editar imagens, inserindo e removendo elementos na imagem, mudar as cores,etc. Basicamente controlar tudo da imagem como um Photoshop.

Esses dois programas eu utilizo em conjunto, criando e editando detalhes no Gimp, e compondo toda a imagem no Canva.

## Aúdio

Para gravar ou editar áudios, eu uso o [Audacity](https://www.audacityteam.org/download/), como não faço edição tão pesada de áudio, o Audacity é mais que o suficiente para mim.

Com o Audacity, posso compor aúdios em diversas trilhas ao mesmo tempo, e editar cada treco de aúdio, podendo reduzir ruído ou adicionar efeitos aos aúdios.

## Vídeo

Para produzir vídeos, eu uso o [Kdenlive](https://kdenlive.org/en/) para compor as trilhas de vídeo e aúdio, e adicionar efeitos de movimento, cor, cortes,etc.

Mas também uso o [Gimp](https://www.gimp.org/) e o [Audacity](https://www.audacityteam.org/download/) para criar imagens e aúdios que vou usar durante o vídeo.

## Finalização

Nesse artigo, mostrei um pouco de como crio meu conteúdo, e quais programas utilizo para tal. Caso ainda não tenha ou está desenvolvendo seu kit de criação de conteúdo, pode usar esse artigo como uma inspiração para criar um kit seu!

Muito obrigada por ler ❤️🏳️‍⚧️ e me segue nas redes, é tudo [@lissatransborda](https://twitter.com/lissatransborda) 👀
What does an outhouse have in common with modern software development?
Tags: qa, agile, gitflow, featurebranches
Published: 2022-08-10 20:38:37

---
title: What does an outhouse have in common with modern software development?
published: true
date: 2022-02-20 00:00:00 UTC
tags: qa,agile,gitflow,featurebranches
canonical_url: https://jhall.io/archive/2022/02/20/what-does-an-outhouse-have-in-common-with-modern-software-development/
---

Apologies for the “unsanitary” topic today… But it’s based on a true story, so bear with me, or skip this one if you don’t like emails about… toilets.

I’m spending February in Guatemala, visiting my wife’s extended family. The last couple of days we were staying in the remote mountains about an hour outside the city of Huehuetenango, where my wife’s mother grew up. My wife’s grandmother, who is now 94, treated us as the guests of honor by slaughtering a turkey, and preparing it with some rice and local soup.

During our stay, we slept in my niece’s house, which was recently built, less than 5 years ago. It’s a simple house, but roomy and comfortable, except for one detail that my wife commented on: The bathroom is situated outside of the house. It’s not an outhouse. It’s attached to the main house. But it’s accessed through a separate doorway.

This means that a midnight bathroom run means unlocking the front door, about three paces through the night air, then unlocking the bathroom door. And again in reverse. It also means that after a shower, you must walk through the living room in a towel. **Awkward!**

So why would they put the bathroom outside, in a new house?

Habit.

My wife explained that in her earliest memories of visiting her grandmother, there was no toilet. You had to walk up the mountain and take care of business behind a tree. Later on, they installed an outhouse, minus the house part. Just a board with a hole in it. And the smell!

Later on a proper outhouse with walls.

Now, in the house my niece and her husband built only 5 years ago, effectivley an outhouse, with running water, physically attached to the house.

It’s all the convenience of indoor plumbing… with all the inconvenience of an outhouse.

But don’t we do this all the time in tech? We hold on to old, obsolete habits, even when there’s no longer a reason, and they may be actively detrimental.

Long-lived feature branches. Staged software releases. Manual acceptance testing.

* * *
_If you enjoyed this message, [subscribe](https://jhall.io/daily) to <u>The Daily Commit</u> to get future messages to your inbox._
API7:2019 - Security Misconfiguration
Tags: api, cybersecurity, owasp, hacking
Published: 2022-02-19 23:49:35

Hello there, friends! 🤗

Coming next to the end of our series, I'm gonna be writing about API7:2019. As it is a more wide-ranging concept when comparing to the previous API vulnerabilities, I'm gonna be using a little bit different approach for presenting today's topic.

## :national_park: Definition

When we access the official page of the [OWASP API Security Project](https://owasp.org/www-project-api-security/), and look at the definition of Security Misconfiguration, this is what we are going to see:

> Security misconfiguration is commonly a result of unsecure default configurations, incomplete or ad-hoc configurations, open cloud storage, misconfigured HTTP headers, unnecessary HTTP methods, permissive Cross-Origin resource sharing (CORS), and verbose error messages containing sensitive information.

By reading it, we can assume that any configuration that's in an API and could help, in a sense, bad guys to perform attacks, may be considered a security misconfiguration. The possibilities are many!

## ✏️ First Example

Let's say that we have an endpoint called `/show-logs` which is supposed to work only for requests that come from localhost:

> GET /show-logs HTTP/1.1
> Host: example.com
>
>

And whenever we try to perform this request from anywhere else, it gives us the following response:

> HTTP/1.1 403 Forbidden
> Server: SuperCoolServer
> Content-Type:application/json
>
> {
> &nbsp;&nbsp;&nbsp;&nbsp;"message": "You will never be able to see these logs because they're only available for localhost hahahah"
> }

It looks pretty intimidating, but if the API was configured in a way that it picks up HTTP headers such as `X-Forwarded-For` for determining authorization, we have a little a problem here, because the client may just change the value of those headers to `localhost` or `127.0.0.1`, and they will be able to see whatever it's being hidden.

## ✨ External Examples

API7:2019 has a definition that can match with an extensive list of cases, and because of that, I would like to share some examples from different places rather than writing just an example.

[HDIV](https://hdivsecurity.com/docs/security-misconfiguration/)

[OWASP API-Security repo](https://github.com/OWASP/API-Security/blob/master/2019/en/src/0xa7-security-misconfiguration.md)

[S3 Misconfigurations](https://infosecwriteups.com/from-aws-s3-misconfiguration-to-sensitive-data-exposure-784f37a30bf9)

## 🚨 Attention!

If you are looking for bugs in order to report them in bug bounty programs, don't just look if they "fit" in the security misconfiguration definition, because sometimes, a misconfiguration doesn't represent any harm to the company. Always pay attention to the context where you are inserted at, and go for impact! And avoid reporting things that are out of scope... 😅

Thank you for taking your time, guys! 🤗