teleren/devto huggingface dataset:
Distributed Ledger Technology (DLT)
Tags: blockchain, dlt, ledger
Published: 2023-04-29 01:25:17

A ledger is a book where we keep a record of transactions and finances for a company, business, or individual.

The ledger includes data like transaction amount, date/time of the transaction, from whom, to whom, and a little description. Like this:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/og3d037j16rb0m61kgbh.png)

Here I have classified the ledger.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jqm3c391nbdh62a6ig0a.png)

## General Ledger

General Ledger is a centralized (control under central authority) record-keeping system used keep all financial transaction data in one place.

## Distributed Ledger

Distributed Ledger is a decentralized (control under multiple participants) record-keeping system that allows multiple participants to have a copy of the ledger and update it in real-time.

Now we will discuss more about the distributed ledger technology (DLT)

## Distributed Ledger Technology (DLT)

Distributed Ledger Technology (DLT) is a decentralized database that allows multiple participants to share, store, and update information in real time. Participants in the network can reach an agreement on the state of the ledger without relying on a central authority. Each participant(node) of the network takes part in the distributed system. Each of them knows the ledger as they have an exact copy just like other nodes in the network.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/el1eifcj4xe6yglt9g8n.png)
App Update: Implementing Real-Time Messaging
Published: 2023-04-29 00:39:18

Day 88 of my #100DaysOfCode challenge, and I decided to spend my Friday evening working on a real-time messaging feature for my project. This exciting challenge pushed me to learn how to fetch messages instantaneously, send them to the backend, store them in the database, and display them in the frontend — all in real time.

With lots of experimentation and debugging, I was able to successfully implement the feature. When a user writes a message, it now appears instantly in a small chat box on the screen. To ensure the messages are displayed correctly, I sorted them based on their timestamps.

However, there is still much to be done. The messaging component requires styling improvements, and I plan to display users’ first names and photos alongside their messages. Since the messages are fetched from the database using user IDs, it’s feasible to retrieve this additional information. Unfortunately, I ran out of time tonight, so I’ll be tackling these tasks tomorrow.

Overall, today was an exhilarating day of coding, and I’m thrilled with the progress I made. Stay tuned for more updates.
Developer Profile
Tags: wtm, daretobe, profile, google
Published: 2023-04-29 00:32:35

Hola mi nombre es Moni una imilla en el Mundo que camina por las nubes ☁️ ☁️ ✨ hoy quiero contarles que es un **Developer Profile** por **Google Developers**, ✨ ¿Qué es? ¿Cómo tener uno? ¿cómo reclamar insignias?

**¿Qué es?**
El developer Profile es un espacio dentro de la página de Google Developers donde puedes ir ganando insignias de las actividades que hagas, comunidades en las que participes y todo lo que aprendas de la mano de las tecnologías de Google.
 
**Beneficios de tener un Developer Profile**
- Te da visibilidad en la comunidad de desarrolladores. 
- Puedes agrupar todos tus logros en un solo lugar.
- Te puede servir de página de presentación para conseguir trabajo.

**¿Cómo tener uno Developer Profile?** 👩🏻‍💻👨🏻‍💻

- Paso 1: Ve a [developer.google.com/profile](developer.google.com/profile) y haga clic en "Crear perfil / Create Profile"

![Crear perfil](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p7dgk3ak9kczfguvzjxf.png)

- Paso 2: Configura tu perfil con tu fotografía y tus datos para que te represente.

![Configurar perfil](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qcdc6xdjh0yde9pzt2x5.png)

- Paso 3: Compártelo, puedes incluirlo a tu perfil de LinkedIn a tus redes sociales donde te sientas más cómodo o cómoda, lo importante es que brilles ✨

**¿Cómo reclamar insignias?** 🎖️
Pues muy fácil, encontrarás muchos cursos dentro de Google Developers en el apartado de [aprendizaje](https://developers.google.com/learn), adicionalmente si vienes de nuestro del IWD México 2023, puedes reclamar tu primera insignia aquí GRATIS!!! 🤗
[Mi primera insignia por el IWD ]( https://developers.google.com/community/wtm/iwd) 

**Bonus** 🎁
Si quieres tener insignias en tiempo record te recomiendo que participes del Google IO de manera virtual estarán regalando muchas insignias por completar codelabs, participar en charlas y cumplir retos. 

👉 Inscríbete aquí: [https://io.google/2023/](https://io.google/2023/)

![Google IO](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ug29dtolg67f3x3i4q6i.png)

Y bueno eso es todo, y si vienes de parte del IWD México muchas gracias por asistir ❤️💙 y por ser tan parte de esta bella comunidad. 

Gracias por tu tiempo 😇
Datawiza Access Proxy: Lightweight, Easy-to-Use ZTNA Solution for Secure Application Access
Tags: ztna, zerotrust
Published: 2023-04-28 23:59:17


[Discover the benefits of Datawiza Access Proxy](https://www.youtube.com/watch?v=r6zNdXhQb5A), a lightweight and user-friendly alternative to other Zero Trust Network Access (ZTNA) solutions like Zscaler Private Access and Netskope Private Access. In this video, we demonstrate how agentless (clientless) Datawiza Access Proxy offers secure access to corporate applications without the need for a VPN, while providing granular URL-level access control. Follow our step-by-step guide to create a new deployment and application, configure Azure Active Directory as the identity provider, and implement Microsoft Sign-in and Multi-Factor Authentication. By the end of this tutorial, you’ll understand why Datawiza Access Proxy is the go-to choice for achieving zero-trust end-to-end protection and a streamlined user experience. Embrace the future of ZTNA solutions with Datawiza Access Proxy today!
Using hooks in React JS and Next JS.
Tags: react, nextjs, hooks, webdev
Published: 2023-04-28 23:36:15

First, let's start with what React JS and Next JS are. 

**React JS** is a library that helps you build user interfaces (what you see on your computer or phone screen when you use an app or website). 

**Next JS** is a framework that helps you build web applications using React JS.

_**Now, let's talk about hooks.**_ 
Hooks are a way to add extra functionality to your React JS or Next JS code. They allow you to do things like use state, manage effects, and reuse logic across different components.

There are several different hooks you can use in React JS and Next JS, but today we're going to focus on two of the most common ones: useState and useEffect.

**useState** is a hook that lets you keep track of variables that can change over time. For example, let's say you're building a game and you want to keep track of the player's score. You could use the useState hook to create a variable called "score" and set it to 0. Then, every time the player earns a point, you could use the "setScore" function (which useState also provides) to update the score.

Here's what that code might look like:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pauszy4ull52lv5j1ntn.png)

The "**useState**" line sets up the "score" variable and the "setScore" function. The "handlePoint" function is called when the player clicks the "Earn a point!" button, and it uses "setScore" to update the score.

The "return" statement defines what the component looks like on the screen. In this case, it shows the current score and a button that the player can click to earn a point.

Now let's talk about useEffect. useEffect is a hook that lets you run some code when something in your component changes. For example, let's say you're building a weather app and you want to get the current temperature from an API (a way to get data from the internet). You could use the useEffect hook to fetch the data from the API when the component first loads.

Here's what that code might look like:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xzzk91x99r4y0me0cm5g.png)

The "useEffect" line sets up the code that fetches the temperature from the API. The "[]", which is the second argument of useEffect, means that the code will only run once (when the component first loads).

The "return" statement shows the current temperature if it's available, or a "Loading..." message if it's not.

And that's it! That's a basic introduction to using hooks in React JS and Next JS. I hope you found it helpful!
How To install React and create your First app
Tags: react, webdev, javascript, tutorial
Published: 2023-04-28 23:28:00

To install React and create your first app, you can follow these steps:

1 Install Node.js and npm (Node Package Manager) on your computer. You can download and install the latest version of Node.js from the official website: https://nodejs.org/en/download/.

2 Once you have installed Node.js, open your terminal or command prompt and run the following command to install the create-react-app package globally:

```
npm install -g create-react-app
```
3 After installing create-react-app, you can create a new React app by running the following command:

```
create-react-app my-app
```
Replace "my-app" with the name you want to give your app. This will create a new React app in a folder with the same name.

4 Once the app is created, you can navigate to the app's directory by running the following command:

```
cd my-app
```
5 Now you can start the development server by running the following command:

```
npm start
```
This will launch a development server and open your app in the browser. You can start editing the code in the "src" folder and see the changes in real-time.

Congratulations, you have successfully installed React and created your first app!
NEXT JS
Tags: webdev, javascript, react, nextjs
Published: 2023-04-28 23:25:12

**Next.js** is a framework built on top of React that provides additional features for building server-rendered React applications. Some of the key functions of Next.js include:

**Server-side rendering**: Next.js has built-in support for server-side rendering, which allows developers to build faster and more performant applications, and it improves the SEO of the application.

**Routing**: Next.js has a built-in file-based routing system, which makes it easy to define routes and handle navigation in the application.

**Automatic code splitting**: Next.js automatically splits the code of the application into smaller chunks, which allows the browser to load the application faster and improve the performance of the application.

**Development server**: Next.js has a built-in development server, which provides features such as hot module reloading, which allows developers to see the changes without refreshing the page.

**Optimized production builds**: Next.js automatically optimizes the production build, which reduces the size of the JavaScript files and improves the performance of the application.

**Serverless Functions**: Next.js allows developers to create serverless functions, which are small, single-purpose functions that can be executed on-demand in a serverless environment.

**Static Site Generation**: Next.js has built-in support for static site generation, which allows developers to generate a fully-static version of their application, which can be deployed to a Content Delivery Network (CDN) and served to the users.

Overall, Next.js provides a complete solution for building server-rendered React applications, and its built-in features, such as server-side rendering, automatic code splitting, and optimized production builds, make it easy to build and maintain high-performance applications
Last week top 5 posts tagged(#python)
Tags: python, c4r4x35
Published: 2023-04-28 13:31:10

##From Spotify to YouTube: How I Built a Python Script to Convert Playlists
I developed the script to convert the Spotify playlist to YouTube playlist. I am here to share how I done this.

 yogeshwaran01 / spotify-playlist-to-youtube-playlist
A simple python script to convert...
{% link https://dev.to/yogeshwaran01/from-spotify-to-youtube-how-i-built-a-python-script-to-convert-playlists-2h89 %}
##How to code a product recommendation engine in PYTHON using ChatGPT?
In today's highly competitive e-commerce landscape, personalized product recommendations are crucial for businesses to attract and retain customers. Machine learning algorithms can help achieve this...
{% link https://dev.to/giveitatry/how-to-code-a-product-recommendation-engine-in-python-using-chatgpt-4mn4 %}
##Getting arty with a Pi
This week I built a BrachioGraph (as mentioned in my comment on "What was your win this week?"). It's a simple pen plotter, driven by a Raspberry Pi - or, potentially, another single board computer -...
{% link https://dev.to/andypiper/getting-arty-with-a-pi-3dk9 %}
##Python 101 tutorial: Write your first real program
Python is a great general purpose programming language and one of the most popular languages in the world right now. It's widely used in many different fields and industries. Some of the most common...
{% link https://dev.to/educative/python-101-tutorial-write-your-first-real-program-593j %}
##Python in the browser with Pyscript
What is Pyscript?

Pyscript is a Python library that allows you to write Python code that is executed in the browser. It is based on Brython and Pyodide and can be used to write interactive web pages,...
{% link https://dev.to/varshithvhegde/python-in-the-browser-with-pyscript-2b9m %}
Run the back end and test the API Functions of Apache Age Viewer Desktop (Go)
Tags: apacheage, node, go, github
Published: 2023-04-28 22:23:35

## Git hub repository

the git hub repository of Age viewer Desktop is

[https://github.com/apache/age/tree/ageviewer_go](https://github.com/apache/age/tree/ageviewer_go)

## clone the ageviewer_go branch of Apache AGE

to clone run the following command on terminal in the folder where you want to clone the branch of the repository

`git clone -b ageviewer_go https://github.com/apache/age`

## run the back-end

to run the back-end 

- open a new terminal

- start PostgreSQL server
   go to PostgreSQL installation folder
   
   let suppose the Database cluster name is demo

   then you can install the PostgreSQL server using following command
`bin/pg_ctl -D demo start`

- open a database let say demodb

  `bin/psql demodb` 

  if not created any you can create using the following command
  `bin/createdb demodb`
   and then open the database

- Open the cloned repository in an IDE like VS code

- Go to the back-end folder of the Repo

- Open APIfunction.js file and make changes in it.

   uncomment the code
   enter you PostgreSQL credentials instead of given.

   change name of APIfunction.js to APIfunction.mjs

   make changes as directed in this pull request:
   [https://github.com/apache/age/pull/869](https://github.com/apache/age/pull/869)
 
   you may need to run the following command if you get an error

   `npm install node-fetch`

   to install node-fetch module and other dependencies

- now open a new terminal and go to the back-end folder of cloned repository

- now run the following command

   `go run .`

   this will start the back-end of the project

- open a new terminal go to the back-end folder to test the API functions

- then run the following command

   `node APIfunctions.mjs`
   and then test the functions

   I hope this tutorial will help you

visit Apache AGE

[Official website](https://age.apache.org)

[Apache Age Github](https://github.com/apache/age)
Top 5 Posts tagged(#openai) last week
Tags: openai, c4r4x35
Published: 2023-04-28 13:30:45

##How to get ChatGPT on your website
ChatGPT is the coolest thing since sliced bread. In this article I explain how you can put it on your website, and make it answer according to your data.

At AINIRO.IO we create middleware that sits...
{% link https://dev.to/polterguy/how-to-get-chatgpt-on-your-website-6m7 %}
##How we built the Fastest ChatGPT Website Chatbot
A ChatGPT-based website chatbot can dramatically decrease your website's performance if it's not correctly implemented. Today we were able to further optimised our ChatGPT chatbot and make it 20x...
{% link https://dev.to/polterguy/how-we-built-the-fastest-chatgpt-website-chatbot-2gkk %}
##OpenAI's API is fun ASF!
Just trying to fiddle with API's and developing more in JS!
{% link https://dev.to/raaggees/openais-api-is-fun-asf-4nn %}
##Fake-GPT: Fake news classifier with GPT-3
Introduction

If you don't live under a rock you most probably have heard about ChatGPT since it's the main topic of the internet recently. It's an artificial intelligence chatbot developed by OpenAI...
{% link https://dev.to/mrxavier/fake-gpt-fake-news-classifier-with-gpt-3-5c46 %}
##Work with the ChatGPT and GPT-4 models in C#
A Practical Guide to Integrating the Conversational Interfaces with Chat API
Work with the ChatGPT and GPT-4 models in C#
{% link https://dev.to/liuhongbo/work-with-the-chatgpt-and-gpt-4-models-in-c-2f3j %}
Redefining Incident Response: Insights from the Chaos Engineer Behind Jeli.io
Tags: programming, devops, productivity, podcast
Published: 2023-04-28 22:11:11

If you think your org doesn’t have any incidents, it’s time to change your definition of an incident.

This week we’re joined by Nora Jones, Jeli's founder & CEO, to simplify incident analysis and explain why so many incidents go underreported. Before beginning her journey as a founder, Nora helped pioneer chaos engineering at companies like Netflix and Slack where she developed a passion for understanding the intersection of software and people.

A stellar engineer, manager & founder, we caught up with Nora on the heels of her keynote address at the LeadDev conference in New York.

{% spotify spotify:episode:627F6Kw2bPGCSNZYLK6QFc %}

## Episode Highlights:
* (1:29) How to lead based on incidents
* (6:50) Learning from incidents
* (14:50) Chaos engineering at Netflix
* (21:34) Why orgs should call more things incidents
* (30:54) Founding Jeli
* (37:01) Nora's advice to eng leaders

While you’re here, check out this video from our YouTube channel, and be sure to like and subscribe when you do!

{% youtube oBW1gGwUZV4 %}

---

## A 3-part Summer Workshop Series for Engineering Executives
Engineering executives, [register now](https://linearb.io/events/2023-summer-series/?utm_source=Dev.to&utm_medium=referral&utm_campaign=202306%20-%20Event%20-%20Summer%20Series%20-%20Podcast%20Distribution) for LinearB's 3-part workshop series designed to improve your team's business outcomes. Learn the three essential steps used by elite software engineering organizations to decrease cycle time by 47% on average and deliver better results: Benchmark, Automate, and Improve.

Don't miss this opportunity to take your team to the next level - [save your seat today](https://linearb.io/events/2023-summer-series/?utm_source=Dev.to&utm_medium=referral&utm_campaign=202306%20-%20Event%20-%20Summer%20Series%20-%20Podcast%20Distribution).

[![Register Today](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nd6b3egikvnssdi9x50g.png)](https://linearb.io/events/2023-summer-series/?utm_source=Dev.to&utm_medium=referral&utm_campaign=202306%20-%20Event%20-%20Summer%20Series%20-%20Podcast%20Distribution)
Distributed Rate Limiter
Tags: typescript, distributedsystems, redis, ratelimiter
Published: 2023-04-28 22:03:04

## Introduction

I recently created a rate limiter library for the distributed systems that can be used to control and limit the number of requests made within a specific period of time.

## The Idea

The idea behind the library is to create a token bucket that replenishes tokens at a certain rate. Each time a request is made, the library checks if there are enough tokens available in the bucket. If there are, it removes a token and allows the request. If not, it rejects the request.

## The Solution

I implemented the token bucket algorithm using Redis as a distributed storage system. The library, called `dist-rate`, takes an options object that includes the number of tokens in the token bucket, the duration for which the tokens are replenished, and an instance of the Redis client to use for distributed locking and storage.

## Usage

To use the `dist-rate-limiter` library in your project, simply install it via npm:

```bash
npm install dist-rate-limiter
```

To use the package, create an instance of the `DistRate` class and call the `execute()` method with a unique ID for each request. The method returns a boolean indicating whether the request should be allowed or not.


```typescript
import IORedis from "ioredis";
import { DistRate } from "distrate";

const redisClient = new IORedis.Cluster([...]);

const rateLimiter = new DistRate({
  tokens: 10,
  duration: 60,
  redisClient,
});

const allowed = await rateLimiter.execute("user123");
```

You can then use the rateLimiter instance to control and limit the number of requests made to your API or server.

##Links

The dist-rate library is available on both GitHub and npm. You can find the GitHub repository here: 

Github - https://github.com/Dhroov7/distRate
NPM -  https://www.npmjs.com/package/dist-rate
Book Summary: Hooked - How to Build Habit-Forming Products
Tags: webdev, startup, userexperience, productmanagement
Published: 2023-05-16 11:03:17

---
title: Book Summary: Hooked - How to Build Habit-Forming Products
published: true
date: 2023-04-28 22:01:49 UTC
tags: webdev,startup,userexperience,productmanagement
canonical_url: https://fagnerbrack.com/book-summary-hooked-how-to-build-habit-forming-products-a0928a26410
---

#### by Nir Eyal

“Hooked: How to Build Habit-Forming Products” provides insights and strategies for designing products that create user habits, leading to increased engagement and long-term success.

![](https://cdn-images-1.medium.com/max/1024/1*zHoBgBt24SQtuHwIHTkdoQ.jpeg)

The most valuable points from the book (with examples) are:

#### Trigger

Triggers are cues that prompt users to take action. They can be external, like notifications, or internal, such as emotions or routines. Designing effective triggers helps initiate user engagement with the product.

For example, a fitness app uses notifications and reminders to prompt users to log their workouts or track their daily steps, creating a habit of regularly engaging with the app.

#### Action

Actions are the simple tasks users perform in response to triggers. The book suggests making these actions as easy as possible to increase the likelihood that users will take them.

For example, a social media platform simplifies the process of sharing content by providing a single button to post updates, making it easy for users to take action and stay engaged.

#### Variable Reward

Variable rewards are unpredictable rewards that users receive after taking action. This element adds an element of surprise and keeps users engaged, as they are motivated to discover what reward they will receive next.

For example, an email app uses the “pull-to-refresh” feature to deliver a variable reward in the form of new emails, keeping users engaged and constantly checking for updates.

#### Investment

Investment refers to the time, effort, or resources users put into a product, which increases their commitment and likelihood of returning. Encouraging users to invest in the product creates a sense of ownership and fosters long-term engagement.

For example, a language learning app encourages users to customize their learning experience and track their progress, increasing their commitment to the app and making it more likely they will continue using it.

By understanding and applying the Hook Model, product designers and developers can create products that effectively engage users and foster long-term habits, ultimately leading to increased user retention and business success.

This is one the best books on the subject.

Thanks for reading. If you have feedback, contact me on [Twitter](https://twitter.com/FagnerBrack), [LinkedIn](https://www.linkedin.com/in/fagnerbrack/) or [Github](http://github.com/FagnerMartinsBrack).